我有一個文本框,它接受一個搜索值,並且我想通過點擊一個按鈕將這個字符串發送到服務器端。不是通過表單提交,通過ajax調用。在JSF中點擊一個按鈕將輸入文本的值傳遞給服務器端
我已經添加了一個actionListener到輸入標籤本身,這被稱爲模糊。但我真正想要的是用戶點擊按鈕來觸發搜索功能。
我有一個想法從this問題,並實現了這種方式:在服務器端收到
<h:inputText id="likeMaterial" value="#{createBookingForm.searchText}"></h:inputText>
<a4j:jsFunction name="setParameterAndRerender" actionListener="{bean.searchMaterials}" reRender="searchResult">
<a4j:actionparam name="param1" assignTo="#{createBookingForm.searchText}"/>
</a4j:jsFunction>
<h:commandButton value="Search" onclick="setParameterAndRerender('mySearchText');return false;"></h:commandButton>
值當然,「mySearchText」。我如何通過用戶輸入的內容?或者如何在調用按鈕的動作偵聽器之前綁定#{createBookingForm.searchText}
?
我打開任何其他的方法來。儘管我有限制:我正致力於增強使用JSF 1.1構建的遺留應用程序。我無法升級,至少不是沒有戰鬥!
編輯:我試過這樣做this的方式,但我得到「未定義」在服務器端。
你不需要'A4J:jsFunction'設置SEARCHTEXT的值('H:inputText'就足夠了)。你可以直接在你的'h:commandButton'中調用action。您的代碼不起作用,因爲您將錯誤的值傳遞給jsFunction。你需要改變'onclick'屬性'的onclick = 「setParameterAndRerender( '#{} createBookingForm.searchText');」'。你的代碼設計不好,嘗試用其他方式做。 –
我不能直接調用的commandButton的行動,因爲這將提交整個表單。我不想那樣。我試圖'的onclick =「setParameterAndRerender(‘#{} createBookingForm.searchText’);'但我得到‘服務器端 – insanity
使用'A4J未定義’:。commandButton'它可以做無形體一些動作提交 –