从语言 portlet 更改语言时,用户将被重定向到最后一个 URL。如果 URL 对应于 actionRequest,则第二次触发该操作。
我在 liferay 6.1 GA2 中尝试了以下简单代码,经典主题
视图.jsp:
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<portlet:defineObjects />
<portlet:actionURL name="myProcessAction" var="myProcessActionURL" />
<a href="<%= myProcessActionURL %>">my process action</a>
<form action="<%= myProcessActionURL %>" method="post">
<input type="submit" />
</form>
testportlet.java:
public class TestPortlet extends MVCPortlet {
public void myProcessAction(ActionRequest actionRequest,
ActionResponse actionResponse) throws IOException, PortletException {
_log.info("processing action");
}
private static Log _log = LogFactoryUtil.getLog("TestPortlet");
}
我将我的测试 portlet 以及语言 portlet 添加到一个新页面。
提交表格 -> 日志显示“处理动作”切换语言 -> 日志再次显示“处理动作”!
最好的问候, 阿兰