如何避免liferay中的语言更改以触发最后一个actionReques

时间:2013-01-11 13:16:36

标签: localization liferay portlet

从语言portlet更改语言时,用户将被重定向到最后一个URL。如果URL对应于actionRequest,则会再次触发该操作。

我尝试使用以下简单代码,使用经典主题,在liferay 6.1 GA2

view.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。

提交表单 - &gt;日志显示“处理操作” 切换语言 - &gt;日志再次显示“处理动作”!

祝你好运, 阿兰

1 个答案:

答案 0 :(得分:1)

您可以通过添加&#34;重定向&#34;来指定页面的重定向位置。参数。例如:

<input type="hidden" name="<portlet:namespace />redirect" value="/" />

如果请求成功,MVCPortlet类将自动查看此参数并重定向到该参数。