2011-05-26 43 views
0

我已經成功地運行了一個基於FORM的身份驗證項目,並試圖對icefaces項目進行相同的操作。在其他方面,我想用冰:形成的,而不是形式,所以我在想,如果我可以重定向的登錄請求在託管bean來j_security_check:如何重定向到託管bean中的j_security_check?

public void myMethod(ActionEvent e){ 
    //some code that redirects to j_security_check 
} 

,並在我的登錄頁:

<ice:commandButton value="login" ActionListener="#{myBean.myMethod}"/> 

但我真的不知道該怎麼做,而且我也沒有真正找到關於j_security_check的文檔以及它是如何工作的。

+0

請修復您的文章,您似乎缺少一些文字在這一行:「在其他方面,我想用來代替,所以我想知道....」 – Ali 2011-05-27 11:31:53

回答

0

您可以使用action="j_security_check"表格,其中包含文本字段或包含用戶名和密碼的隱藏字段。您可以將這些字段綁定到託管bean中的變量。您可以使用表單中的提交按鈕而不是<ice:commandButton>

如果你必須使用<ice:commandButton>,你可以使用JavaScript來發送「myform.submit()」腳本:

public void myMethod(ActionEvent e) 
{ 
     //Some other code... 

     JavascriptContext.addJavascriptCall(
      FacesContext.getCurrentInstance(), "document,forms.myForm.submit()");  
} 

您還可以動態地創建一個JavaScript表單元素,分配用戶名/密碼值,並提交它,使用JavascriptContext.addJavascriptCall()方法

+0

搞亂文字是最重要的,對不起我沒注意。問題是我只想使用icefaces組件,並且它似乎沒有工作,所以我試圖使用managedbean。 – boskonovic 2011-05-27 20:07:49

+0

好吧,你可以嘗試一下。使用'id =「iceformID」'屬性給你的''和ID。你可以在按鈕後面使用這個javascript代碼:'document.getElementById('iceformID')。submit();'你可以在onclick事件中使用它,因爲有這個事件。或者,如果您確實想要使用Managed Bean,請按照上述說明通過actionListener發送此代碼。 – Ali 2011-05-28 14:53:47