2016-07-28 91 views
1

使用案例:自定義forgot_password.jsp在Liferays登錄鉤

  • 現有Liferay的用戶忘記了密碼。
  • 他點擊鏈接「忘記密碼」(登錄掛鉤)。
  • 用戶輸入他的登錄名這是他的screenname
  • 現在我的問題:如果用戶進入某個登錄名(我
    識別與正則表達式),並點擊按鈕「發送新密碼」我想 以防止該按鈕的默認操作和顯示infomessage 代替(例如,我們不能給你一個新的密碼...)

說實話,我目前所面對如何處理這個不知道......

  1. 也許創建一個Ext插件並覆蓋Forg otPasswordAction類?
  2. 是否有可能在forget_password.jsp中完成所有操作?
  3. 我可以不寫一個插件嗎?

希望有人能幫助我。謝謝

回答

1

沒有插件沒有,你不能這樣做。

  1. 最簡單的方法是使您的密碼檢查在javascript使用AJAX使用JSP掛鉤,並把這個代碼控制forgot_password.jsp

2做也許這將是。 第二種方法是使一個Struts動作鉤子,你在你的Liferay-hook.xml附加覆蓋更新密碼的默認操作/login/forgot_password form.For這樣的:

<struts-action> 
    <struts-action-path>/login/forgot_password</struts-action-path> 
    <struts-action-impl>com.myproject.hook.NewPasswordPortletAction</struts-action-impl> 
</struts-action> 

添加該n EW類項目的

public void processAction(
      StrutsPortletAction originalStrutsPortletAction, 
      PortletConfig portletConfig, ActionRequest actionRequest, 
      ActionResponse actionResponse) 
     throws Exception { 
     //Custom code to handle password 

     //and than call original action handler if the password entered should be saved 
     originalStrutsPortletAction.processAction(
      originalStrutsPortletAction, portletConfig, actionRequest, 
      actionResponse); 
    } 

至於內線,你應該alwayes儘量不要使用它,因爲這可以用一個鉤子去用它來完成。

+0

很好的回答。我建議去2代碼。也許你需要1才能正確顯示結果信息,但jsp不應該包含你的業務邏輯 –

+0

完美。感謝您的幫助。 – HelmutSteiner

+0

如果解決了您的問題,請接受答案... – KLajdPaja