Portlet technologies introduces 4 PortletRequest. Spring support these with annotation :
@RequestMapping
@RenderMapping
@ActionMapping
@EventMapping
Lets see how each of these portlet request correspond to spring modelMap.
In this article, i used liferay as my portlet platform and put the return parameter in the spring modelMap, RenderRequest, RenderResponse, ActionRequest, ActionResponse, EventRequest and EventResponse to test the correspond result.
@RequestMapping
@RequestMapping
public String render(ModelMap modelMap, SessionStatus status,
RenderRequest request, RenderResponse response) {
modelMap.put("request1", "request1");
modelMap.addAttribute("request2", "request2");
request.setAttribute("request3", "request3");
response.setProperty("request4", "request4");
response.addProperty("request5", "request5");
return "pitcher";
}
support – modelMap.put(String key, Object value); <c:out value="${parameter}"/>
support – modelMap.addAttribute(String key, Object value); <c:out value="${parameter}"/>
support – request.setAttribute(String name, String value); <c:out value="${parameter}"/>
not support – response.setAttribute(String key, String value);
not support – response.addAttribute(String key, String value);
@RenderMapping
@RenderMapping
public String doView(RenderRequest request, RenderResponse response, ModelMap modelMap) {
modelMap.put("render1","render1");
modelMap.addAttribute("render2", "render2");
request.setAttribute("render3","render3");
response.addProperty("render4", "render4");
response.setProperty("render5", "render5");
return "catcher";
}
Result
support – modelMap.put(String key, Object value); <c:out value="${parameter}"/>
support – modelMap.addAttribute(String key, Object value); <c:out value="${parameter}"/>
support – request.setAttribute(String name, String key); <c:out value="${parameter}"/>
not support – response.addProperty(String key, String value);
not support – response.setProperty(String key, String value);
@ActionMapping
@ActionMapping("pitchBall")
public void pitchBallAction(SessionStatus status,
ActionRequest request,
ActionResponse response, ModelMap modelMap)
{
modelMap.put("action1", "action1");
modelMap.addAttribute("action2", "action2");
request.setAttribute("action3","action3");
response.setRenderParameter("action4", "action4");
response.setProperty("action5", "action5");
response.addProperty("action6", "action6");
QName qname = new QName("http://liferay.com/events","ipc.pitch");
response.setEvent(qname, "viewpage");
status.setComplete();
}
Result
support – request.setAttribute(String name, Object obj); <c:out value="${parameter}"/>
support – response.setRenderParameter(String name, String key); <c:out value="${param.value}"/>
support – modelMap.addAttribute(String key, Object obj); <c:out value="${parameter}"/>
support – modelMap.put(String key, Object obj); <c:out value="${parameter}"/>
not support – response.addProperty(String key, String value);
not support – response.setProperty(String key, String value);
@EventMapping
@EventMapping(value ="{http://liferay.com/events}ipc.pitch") public void receiveEvent(EventRequest request, EventResponse response, ModelMap modelMap) { Event event = request.getEvent(); String pitch = (String)event.getValue(); modelMap.put("event1","event1"); modelMap.addAttribute("event2", "event2"); request.setAttribute("event3", "event3"); response.setRenderParameter("event4", "event4"); response.setProperty("event5", "event5"); response.addProperty("event6", "event6"); }Event Test
Result
support – response.setRenderParameter(String name, String value); <c:out value="${param.value}"/>
not support – modelMap.put(String key, Object obj);
not support – modelMap.addAttribute(String key, Object obj);
not support – request.setAttribute(String name, Object obj);
not support – response.setProperty(String name, String value);
not support – response.addProperty(String name, String value);





Posted in 



Thanks for the info