2010-01-19 49 views
0

我有這樣的代碼<A4J:actionparam送超值送花兒給人空

<a4j:region> 
<h:inputText label="User" id="user" size="30" value="#{bean2.val1}" required="true" > 
    <a4j:support event="onblur" action="#{bean.action}" reRender="outputName" bypassUpdates="true"> 
     <a4j:actionparam name="user" assignTo="#{bean.user}" value="#{user}" /> 
    </a4j:support> 
</h:inputText>  
</a4j:region> 
<h:message for="user"/> 

我的bean類是這樣的:

private String user; 
    public String getUser() { 
     System.out.println("user=="+user); 
    return user; 
    } 
    public void setUser(String user) { 
     this.user = user; 
    } 
    public void action(){ 
     getUser(); 
    } 

但每一個onblur事件發生時,用戶送花兒給人空值。

我只是想用戶的值發送到bean時onblur事件發生。所以我可以得到用戶的價值。 任何人都可以幫助我? (我爲我的英語很抱歉)

回答

0

嗯,#{user}值爲null總是 - 沒有在請求屬性沒有這樣的事。您可以刪除<a4j:actionparam,只需保留<a4j:support,最好將ajaxSignle=true。這將首先提交文本輸入的值,然後執行該操作(至少應該)。還把immediate=true繞過驗證。

你對此有何評論後,我想你也可以嘗試:

<a4j:actionparam name="user" assignTo="#{bean.user}" value="#{bean2.val1}" /> 

或手工做的action方法分配。剛剛注入第二豆到第一個(假設你使用DI框架)

+0

感謝Bozho。 我試過n得到bean.user = [email protected]的值。 從我的觀點來看,inputText的值是bean2.val。對bean.action的Onblur操作。我想從該操作或bean.user中獲取輸入值,這可能嗎? (那裏有兩種不同的豆子) – user253914 2010-01-20 08:49:06

0

前面已經指出的那樣,該值將始終爲空,因爲它永遠不會東南。如果你想要的值,你可以將bean2的託管屬性val1注入到bean中。

使用ManagedProperty:

class Bean { 
    @ManagedProperty{value="#{bean2.val}" 
    private user; 
} 

值將被自動注入。

相關問題