Liferay Portal(四)jsp中URL传参给portlet
2013-05-13 23:36
267 查看
每个portlet都有自己对应的view.jsp文件,jsp文件中可以通过form表单的形式向对应的portlet传递参数,然后在portlet中处理这些请求。下面介绍两种jsp的form请求:actionURL和renderURL。
一:actionURL
一般ActionURL适用于有确实的Action(行为)的情况下。比如说,表单form提交后Persistent状态的改变、session的改变、perference的修改等等。
在jsp页面中:
<portlet:actionURL var="actionURL" windowState="normal" portletMode="view">
<portlet:param name="action" value="doAction"/>
</portlet:actionURL>
<form action="<%=actionURL%>" method="post">
<input type="submit" value="doAction"/>
</form>
当jsp文件发送ActionURL请求的时候,服务器自动调用对应portlet中的processAction()方法。在这个方法中使用actionRequest.getParameter("action")接收参数。代码如下:
public void processAction(ActionRequest actionRequest,ActionResponse actionResponse) throws IOException, PortletException {
String action = actionRequest.getParameter("action"); System.out.println(action);
super.processAction(actionRequest, actionResponse); }
二:renderURL
这个renderURL通常用来处理Portlet的导航。
在jsp页面中:
<portlet:renderURL var="renderURL" windowState = "normal" portletMode = "view">
<portlet:param name = "action" value = "doView" />
</portlet:renderURL>
<form action="<%=renderURL%>" method="post">
<input type="submit" value="doView"/>
</form>
当jsp文件发送renderURL请求的时候,服务器先调用对应portlet中的processAction()方法,然后又调用doView()方法,当参数在processAction()方法中被接收的时候,还得再将参数设置到render请求中,才能将参数传递给doView()方法。代码如下:
public void processAction(ActionRequest actionRequest,ActionResponse actionResponse) throws IOException, PortletException {
String action = actionRequest.getParameter("action");
actionResponse.setRenderParameter("action", action); super.processAction(actionRequest, actionResponse);
}
public void doView(RenderRequest renderRequest,RenderResponse renderResponse) throws IOException, PortletException {
renderResponse.setContentType("text/html");
String action = renderRequest.getParameter("action");
renderResponse.getWriter().println(action); super.doView(renderRequest, renderResponse);
}
以上就是jsp中两种URL传参到portlet的处理过程,注意表单提交最好使用Post方法而不是Get方法,因为某些Portlet服务器可能会将内部状态编码到URL的Query字符串中。
一:actionURL
一般ActionURL适用于有确实的Action(行为)的情况下。比如说,表单form提交后Persistent状态的改变、session的改变、perference的修改等等。
在jsp页面中:
<portlet:actionURL var="actionURL" windowState="normal" portletMode="view">
<portlet:param name="action" value="doAction"/>
</portlet:actionURL>
<form action="<%=actionURL%>" method="post">
<input type="submit" value="doAction"/>
</form>
当jsp文件发送ActionURL请求的时候,服务器自动调用对应portlet中的processAction()方法。在这个方法中使用actionRequest.getParameter("action")接收参数。代码如下:
public void processAction(ActionRequest actionRequest,ActionResponse actionResponse) throws IOException, PortletException {
String action = actionRequest.getParameter("action"); System.out.println(action);
super.processAction(actionRequest, actionResponse); }
二:renderURL
这个renderURL通常用来处理Portlet的导航。
在jsp页面中:
<portlet:renderURL var="renderURL" windowState = "normal" portletMode = "view">
<portlet:param name = "action" value = "doView" />
</portlet:renderURL>
<form action="<%=renderURL%>" method="post">
<input type="submit" value="doView"/>
</form>
当jsp文件发送renderURL请求的时候,服务器先调用对应portlet中的processAction()方法,然后又调用doView()方法,当参数在processAction()方法中被接收的时候,还得再将参数设置到render请求中,才能将参数传递给doView()方法。代码如下:
public void processAction(ActionRequest actionRequest,ActionResponse actionResponse) throws IOException, PortletException {
String action = actionRequest.getParameter("action");
actionResponse.setRenderParameter("action", action); super.processAction(actionRequest, actionResponse);
}
public void doView(RenderRequest renderRequest,RenderResponse renderResponse) throws IOException, PortletException {
renderResponse.setContentType("text/html");
String action = renderRequest.getParameter("action");
renderResponse.getWriter().println(action); super.doView(renderRequest, renderResponse);
}
以上就是jsp中两种URL传参到portlet的处理过程,注意表单提交最好使用Post方法而不是Get方法,因为某些Portlet服务器可能会将内部状态编码到URL的Query字符串中。
相关文章推荐
- Liferay Portal服务器上的portlet开发_2: 在EXT中开发最简单的JSP
- 【Liferay Portal指南四】——JSP Portlet开发
- jsp URL中文传参乱码问题
- Portal开源实现-Liferay的Portlet Session处理
- 通过url方式传参jsp页面中文乱码
- try{jsp url传参}
- 深入liferay portal核心之一 portlet扩展分析
- Liferay中根据Portlet找到对应的JSP页面
- liferay-portal中卸载portlet
- Liferay portlet 如何取得客户端的IP地址(portal get remote IP)
- Liferay Portal额外研究(六):Portlet附件上传处理的点滴
- 【liferay】5、使用PortletURL进行跨portlet通信 liferay6.2
- Liferay中使用<portlet:resourceURL>触发serveResource()方法调用的细节 推荐
- jsp中url传参中文参数在字符集转换后仍然有部分字符为问号的情况解决。
- liferay的jsp中获取当前portlet的windowState
- jsp通过url向Action传参出现中文乱码(测试有效)
- (Portal 开发读书笔记)在portlet URL中使用<param>传递参数
- liferay开发之一:简单JSP Portlet开发
- jsp传参时若Url为中文时的乱码问题