簡體   English   中英

單擊JSF中的按鈕,將輸入文本的值傳遞到服務器端

[英]passing input text's value to server side on click of a button in JSF

我有一個帶有搜索值的文本框,我想在單擊按鈕時將此字符串發送到服務器端。 不是通過表單提交,而是通過ajax調用。

我已經向輸入標簽本身添加了一個actionListener,這在模糊時被調用。 但是,我真正想要的是用戶單擊按鈕以觸發搜索功能。

我從這個問題中得到了一個主意,並以這種方式實現了它:

<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構建的遺留應用程序。 我不能升級,至少不能沒有戰斗!

編輯:我嘗試做這樣的方式,但我得到服務器端的“不確定”。

為什么不使用a4j:commandButton代替h:commandButton? 它將執行ajax請求並呈現您想要的內容。 不會提交任何表單。 樂事喜歡您所需要的。

h:commandButton默認情況下在單擊時提交表單。 因此,無需使用a4j:jsFunction或任何其他方式專門發送。 除非有其他事情要做,否則您可以完全刪除js函數。 如果要進行測試,請添加一個操作方法並在createBookingForm bean中打印searchText variale的值。

希望這可以幫助!!

這是整體解決方案

<h:inputText id="likeMaterial" value="#{createBookingForm.searchText}"></h:inputText>
<a4j:commandButton reRender="searchResult" actionListener="#{createBookingForm.searchMaterials}">
    <a4j:actionparam name="param1" noEscape="true" value="document.getElementById('likeMaterial').value" assignTo="#{createBookingForm.searchText}" />
</a4j:commandButton>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM