0

Liferay でセッションをカスタマイズするにはどうすればよいですか?サンプル コードを歓迎します。より具体的には、私が何をしたかを説明します。カスタム JSP フックを使用して、$PORTAL_ROOT_HOME/html/portlet/login login.jsp をオーバーライドし、独自の JSP ページを作成し、LoginAction クラスもオーバーライドしました。私の login.jsp ページは次のようになります。

<aui:form action="" method="post">
        <table>
            <tr>
                <td>Username :</td>
                <td><input name="login" size=15 type="text" /></td>
            </tr>
            <tr>
                <td>Password :</td>
                <td><input name="password" size=15 type="password" /></td>
            </tr>
        </table>
        <aui:button type="submit" value="sign-in"/>
</aui:form>

次に、送信ボタンをクリックしたときに、LoginAction.java でログイン値を取得し、値をセッションに設定する方法を教えてください。これが私がカスタマイズすることの意味です。

4

2 に答える 2

1

最初から元のlogin.jspファイルをコピーしておく必要があります。コードニップセットの外観によって、アクションをloginActionに設定するのを忘れました。これは次の方法で実行できます。

<portlet:actionURL secure="<%= PropsValues.COMPANY_SECURITY_AUTH_REQUIRES_HTTPS || request.isSecure() %>" var="loginURL">
            <portlet:param name="saveLastPath" value="0" />
            <portlet:param name="struts_action" value="/login/login" />
            <portlet:param name="doActionAfterLogin" value="<%= portletName.equals(PortletKeys.FAST_LOGIN) ? Boolean.TRUE.toString() : Boolean.FALSE.toString() %>" />
        </portlet:actionURL>

<aui:form action="<%= loginURL %>" method="post">
        <table>
            <tr>
                <td>Username :</td>
                <td><aui:input name="login" size=15 type="text" /></td>
            </tr>
            <tr>
                <td>Password :</td>
                <td><aui:input name="password" size=15 type="password" /></td>
            </tr>
        </table>
        <aui:button type="submit" value="sign-in"/>
</aui:form>

元の$PORTAL_ROOT_HOME/ html / portal / login/login.jspをフックにコピーすることをお勧めします。次に、必要に応じて変更を加えます。

提供されたスニペットがすべてある場合、フックは既存の機能の割り当てを壊す/削除します。

アクションからパラメーターを受け取るには、Paulsanswerを使用できます。

于 2012-05-11T12:35:31.817 に答える
1

次のコードでログイン値を取得できます。

    String login = ParamUtil.getString(request, "login");
    String password = ParamUtil.getString(request, "password");

セッションにいくつかの値を設定するには、次を使用します。

    HttpSession session = request.getSession();
    session.setAttribute("parm", "somevalue");

BR、ポール

于 2012-05-11T11:27:32.670 に答える