2009-09-10 5 views
3

단일 포틀릿에 여러 페이지가 포함될 수 있는지 알고 있다면 궁금합니다. JSP 페이지라고합시다. 또한 동일한 포틀릿 내의 다른 페이지에 링크 할 수 있습니까?하나의 포틀릿 내부에 여러 페이지가 있음

예를 들면. 단일 포틀릿이 있다고 가정 해 보겠습니다. 그리고이 포틀릿에서 초기 뷰를 5 개의 다른 JSP 페이지와 5 개의 링크 만있는 JSP 페이지로 만들고 싶습니다. 사용자가이 5 개의 링크 중 하나를 클릭하면 해당 JSP 페이지가 포틀릿에로드됩니다.

최종 목표는 기본적으로 포틀릿 안에 들어있는 작은 미니 웹 사이트입니다.

이제는 이것이 포틀릿을 사용하지 않을 수도 있음을 이해하지만, 현재 작업하고있는 프로젝트를 위해 여전히 가능한지 알고 싶습니다.

감사합니다.

답변

4

물론 포틀릿에는 둘 이상의 JSP가 포함될 수 있습니다.

당신은 당신의 doView (또는 doHelp 또는 doEdit) 메서드의 PortletRequestDispatcher를 통해 원하는 JSP를 표시 할 수 있습니다

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); 
} 

당신은보기를 설정하는 parameter를 사용할 수 있습니다. 링크가있는 JSP에서 Portlet API를 사용하여 포틀릿에 대한 링크를 만들고 인코딩해야합니다. 예를 들어 :

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

는 (정말 JSR286/포틀릿 2.0 어떤지를 유지하지 않은 -이 물건은 JSR168/포틀릿 1.0로 작동합니다 - 그래서 당신이 그것을 사용하는 경우 새로운 API를 확인하는 가치가있다.)

+0

정확히 내가 무엇을 찾고 있었습니까. 고맙습니다! –

+1

+1 JSR-286도 괜찮습니다. – wmorrison365

관련 문제