2010-09-11 36 views
0

我想在JSF支持bean中獲取JavaScript值。我已經試過如下:在JSF支持bean中獲取由JavaScript設置的隱藏值

JSF:

<h:inputHidden id="fileName" value="#{TestBean.fileName}" /> 
<a4j:commandButton id="button" value="Send Mail" action="#{TestBean.send}" onclick="onCall()"/> 

豆:

public String send() { 
    System.out.println("File Name: " + fileName); 
} 

JS:

function onCall(){ 
    //value changes dynamically everytime this function is called 
    document.getElementById('case:fileName').value = '123'; 
} 

問題與此代碼是:首次是從第二次獲取支持bean 中的空字符串,它在t中獲得先前生成的值他有java腳本功能。

我哪裏錯了,我該如何解決?

+0

此替代方案適合您嗎? 'value =「#{fileName}」'設置值的bean屬性使用'setPropertyActionListener'或者將param作爲參數添加到你的方法'#{send(fileName)}? – djmj 2012-08-09 13:10:12

回答

1

我只是試過這段代碼,它在我的機器上工作正常。正如我所看到的代碼不完全複製粘貼,因爲在send()方法中有錯誤。它聲明返回類型String,但它不返回任何內容。

也許你的錯誤是在你沒有在這裏複製的代碼的某個地方。

+0

我認爲這是一個紅鯡魚。它至少與問題描述不符:「每次點擊都會給出先前的設置值」:)如果返回值確實缺失,則代碼根本不會編譯。順便說一下,我已經比'a4j:commandButton'更經常看到這樣的問題,另請參閱[本主題](http://forums.sun.com/thread.jspa?threadID=5390192)。如果情況再次如此,我不會感到驚訝。我會升級RichFaces或報告它。 – BalusC 2010-09-12 21:07:50