PortletRequest with Spring ModelMap

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

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

You can leave a response, or trackback from your own site.

One Response to “PortletRequest with Spring ModelMap”

  1. zerodtkjoe says:

    Thanks for the info

Leave a Reply

Security Code: