0
我想從動作階段傳遞字符串值以呈現階段。在這兩個教程tut1和tut2它說我可以做到這一點:從動作階段傳遞值來呈現portlet中的階段
在行動(),你可以調用ActionResponse.setRenderParameter()方法來設置所有的字符串值,並使用RenderRequest.getParameter檢索相同的()以下呈現調用。
這裏是我的觀看模式控制器
GraphViewController.java我的日誌
package graphui;
import com.liferay.portal.kernel.util.ParamUtil;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.ResourceRequest;
import javax.portlet.ResourceResponse;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.portlet.ModelAndView;
import org.springframework.web.portlet.bind.annotation.ActionMapping;
import org.springframework.web.portlet.bind.annotation.RenderMapping;
import org.springframework.web.portlet.bind.annotation.ResourceMapping;
/**
*
* Controller for VIEW mode of portlet.
*/
@Controller("graphViewController")
@RequestMapping(value = "VIEW")
public class GraphViewController{
private static final Logger logger = Logger.getLogger(GraphViewController.class);
@ActionMapping(GraphUIConstants.SUBMIT_FORM)
public void handleActionRequest(ActionRequest request, ActionResponse response)throws Exception {
logger.info("action phase executed");
response.setRenderParameter("par1", "par1");
}
@RenderMapping
public ModelAndView handleRenderRequest(RenderRequest request, RenderResponse response, ModelMap model) {
logger.info("render phase executed");
logger.info(request.getAttribute("par1"));
}
}
結果:
17:43:06,196 INFO [GraphViewController:56] render phase executed
17:43:06,205 INFO [GraphViewController:58] null
17:43:09,491 INFO [GraphViewController:40] action phase executed
17:43:09,498 INFO [GraphViewController:56] render phase executed
17:43:09,499 INFO [GraphViewController:58] null
的portlet.xml
<?xml version='1.0' encoding='UTF-8' ?>
<portlet-app
xmlns='http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd'
version='2.0'>
<portlet>
<portlet-name>GraphUI</portlet-name>
<portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
<init-param>
<name>contextConfigLocation</name>
<value>/WEB-INF/GraphUI-portlet.xml</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
<portlet-mode>EDIT</portlet-mode>
</supports>
<supported-locale>en</supported-locale>
<resource-bundle>content.graph</resource-bundle>
</portlet>
</portlet-app>
要設置渲染參數和您要取請求屬性,這就是爲什麼它總是爲空。請糾正您的代碼。 – 2015-04-03 19:39:24