【Liferay6.2】renderURL和actionURL的区别

在liferay开发中,<portlet:renderURL/>和<portlet:actionURL/>是我们经常用到的两个portlet标签。

我们通过常用的使用方法来说明他们之间区别。

<portlet:renderURL/>使用示例

首先我们会在页面中定义一个portlet:renderURL,变量名为viewUrl。

<portlet:renderURL var=”viewUrl”>
  <portlet:param name=”id” value=”123″/>
</portlet:actionURL>

该段代码的作用其实是自动生成包含id参数的一段URL:

http://localhost:8080/group/demo/demo?p_p_id=demo_WAR_demoportlet&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_demo_WAR_demoportlet_id=123

然后通过链接的方式引用renderURL,例如:

<a href=”<%=viewUrl %>”>查看</a>

点击该链接,在页面或者后台doView方法中,我们就可以通过以下方法获得参数id的值:

long id= ParamUtil.getLong(request, “id”);

<portlet:actionURL/>使用示例

<portlet:actionURL var=”deleteUrl” name=”delete”>
  <portlet:param name=”id” value=”123″/>
</portlet:actionURL>

与<portlet:renderURL/>不同的地方是多个一个name属性,name属性值对应的其实就是portlet后台处理类的action方法名delete。

该段代码的作用也是生成一段包含参数id的Url:

http://localhost:8080/group/demo/demo?p_auth=rjuZ5R0r&p_p_id=demo_WAR_demoportlet&p_p_lifecycle=1&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_demo_WAR_demoportlet_id=123&_demo_WAR_demoportlet_javax.portlet.action=delete

同样也可以通过链接的方式引用它,例如:

<a href=”<%=deleteUrl%>”>删除</a>

点击该链接之后,在portlet类的delete方法中,我们也可以long id= ParamUtil.getLong(request, “id”);方法获得参数id的值,然后删除该数据。

 <portlet:renderURL/>与<portlet:actionURL/>的区别

结合使用示例,我们可以总结出<portlet:renderURL/>与<portlet:actionURL/>的区别有以下几点:

1、<portlet:renderURL/>传递的参数通常在后台doView方法中接收处理;<portlet:actionURL/>有name属性可以调用指定的后台方法,参数也在该类中处理

2、<portlet:renderURL/>通常用于页面之间的调转,例如查看详情;<portlet:actionURL/>通常用于删除、表单提交等业务逻辑的处理操作

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。