0

我如何在 Liferay 中自定义会话?欢迎提供示例代码,因为它会更有帮助,我对 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

您可以使用以下代码获取登录值:

    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 回答
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/portlet/login/login.jsp 复制到您的挂钩中。然后根据需要进行修改。

如果提供的片段集是你所拥有的,你的 Hook 将破坏/删除现有功能的分配。

要从操作中接收参数,您可以使用 Pauls answer。

于 2012-05-11T12:35:31.817 回答