'JSPDynPage'에 해당되는 글 1

  1. 2011.09.02 [EP] JSPDynPage에서 HttpServletRequest 사용하기

[EP] JSPDynPage에서 HttpServletRequest 사용하기

- JSPDynPage에서 HttpServletRequest에 데이터를 담아서 JSP로 전달해 본다.
public static class TestComponentDynPage extends JSPDynPage {
	...
	public void doProcessBeforeOutput() throws PageException {
		IPortalComponentRequest componentRequest = (IPortalComponentRequest)getRequest();
		HttpServletRequest servletRequest = componentRequest.getServletRequest();
		servletRequest.setAttribute("msg", "msg in request");			
		this.setJspName("test.jsp");
	}
}
<%= "Hello JSPDynPage" %><br>
<%= request.getAttribute("msg") %>

JSP에서 request에 담긴 데이터를 가져오지 못한다.
게다가 TestComponentDynPage에서 로그가 찍히지도 않는다.

이 경우 portalapp.xml의 ComponentType을 없앤다.
<?xml version="1.0" encoding="UTF-8"?>
<application>
  <application-config>
    <property name="PrivateSharingReference" value="com.sap.portal.htmlb"/>
  </application-config>
  <components>
    <component name="TestComponent">
      <component-config>
        <property name="ClassName" value="tut.TestComponent"/>
        <!-- property name="ComponentType" value="jspnative"/ -->
        <property name="JSP" value="pagelet/test.jsp"/>
      </component-config>
      <component-profile/>
    </component>
  </components>
  <services/>
</application>


- JSP로 IPortalComponentRequest를 이용해서 데이터를 전달하기
ComponentType을  없애지 않으면 이것도 되지 않는다.
componentRequest.getNode().putValue("msg", "msg in component request");