0

言語ポートレットから言語を変更すると、ユーザーは最後の URL にリダイレクトされます。URL が actionRequest に対応する場合、そのアクションが 2 回トリガーされます。

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");
}

テスト ポートレットと言語ポートレットを新しいページに追加します。

フォームを送信 -> ログに「処理アクション」が表示されます言語を切り替えます -> ログに「処理アクション」が再度表示されます!

よろしく、 アラン

4

1 に答える 1

1

「redirect」パラメータを含めることで、ページのリダイレクト先を指定できます。例えば:

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

クラスはこのMVCPortletパラメーターを自動的に認識し、リクエストが成功した場合にリダイレクトします。

于 2013-01-15T00:55:12.233 に答える