문제

단일 포틀릿에 여러 페이지를 포함 할 수 있는지 아는 사람이라면 궁금합니다. JSP 페이지를 가정 해 봅시다. 또한 동일한 포틀릿 내에서 이러한 다른 페이지에 링크 할 수 있습니까?

예를 들어. 하나의 포틀릿이 있다고 가정 해 봅시다. 이 포틀릿에서는 초기보기가 5 개의 다른 JSP 페이지로 5 개의 링크가있는 JSP 페이지가되기를 원합니다. 또한 사용자 가이 5 개의 링크 중 하나를 클릭하면 적절한 JSP 페이지를 포틀릿에로드합니다.

최종 목표는 기본적으로 포틀릿 내부에 포함 된 작은 미니 웹 사이트입니다.

이제 이것이 포틀릿을 가장 잘 사용하는 것이 아닐 수도 있지만, 내가 작업중 인 프로젝트를 위해서도 여전히 가능한지 알고 싶습니다.

감사!

도움이 되었습니까?

해결책

물론, 포틀릿에는 둘 이상의 JSP를 포함 할 수 있습니다.

원하는 JSP를 표시 할 수 있습니다 PortletRequestDispatcher 당신의 도관 (또는 doHelp 또는 doEdit) 방법:

protected void doView(RenderRequest req, RenderResponse resp)
       throws PortletException, IOException, UnavailableException {
   resp.setContentType("text/html"); 
   String myview = req.getParameter("myview");
   String view = "/WEB-INF/jsp/" + (myview==null ? "bar" : myview) + ".jsp";
   PortletRequestDispatcher dispatcher = 
                                 getPortletContext().getRequestDispatcher(view);
   dispatcher.include(req, resp);
}

당신은 a를 사용할 수 있습니다 매개 변수 보기를 설정합니다. 링크가있는 JSP에서는 Portlet API를 사용하여 Portlet에 대한 링크를 작성/인코딩해야합니다. 예를 들어:

<portlet:renderURL>
  <portlet:param name="myview" value="foo"/>
</portlet:renderURL>

(JSR286/Portlet 2.0을 실제로 유지하지 않았습니다.이 물건은 JSR168/Portlet 1.0에서 작동해야하므로 사용하는 경우 새 API를 확인하는 것이 좋습니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top