2012-05-11 119 views
0

我如何在Liferay中自定義會話?歡迎使用示例代碼,因爲它會提供更多幫助,我對Liferay來說很新穎嗎? 更具體地說,我會解釋我所做的。使用自定義的JSP魚鉤,我已經覆蓋了$ PORTAL_ROOT_HOME/HTML /門戶/登錄的login.jsp並創建了自己的JSP頁面,還覆蓋了在LoginAction class.My login.jsp頁面的樣子:Liferay中的會話管理

<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中的登錄值,並將值設置爲會話。這就是我所說的定製。

+0

您應該詳細說明「定製」會話的含義。 – adarshr

+0

希望現在它非常清楚! –

回答

1

你應該已經複製origonal login.jsp文件從頭開始。通過您的codenipsets的外觀,您忘記了將操作設置爲您的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 /門戶/登錄/ login.jsp的複製到你的鉤子。如有需要,請進行修改。

如果提供的snipset是你所擁有的全部功能,那麼您的Hook將打破/移除現有功能。

要從操作中接收參數,您可以使用Pauls答案。

+0

謝謝您的回答。它現在工作正常!但我無法根據Paul的回答獲取登錄值。我得到空值。我必須寫任何模型課程嗎? –

+0

保羅給你回答你需要使用aui:input標籤的確如此:-),他們添加了必需的名稱空間 – David

1

你可以登錄值與此代碼:

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

設置一些值會使用這樣的:

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

BR, 保羅

+0

Paul對答覆表示感謝。我可以在表單中設置操作嗎?這是我需要的是,當我點擊提交按鈕時,它應該重定向到LoginAction類。 –

+1

您應該使用aui輸入: 」/> 它將生成帶有portlet名稱空間前綴的輸入,並且您將能夠獲得它來自請求。 另請檢查/portal/portal-web/docroot/html/portlet/login/login.jsp上的原始login.jsp –