當觸發此事件(onkeyup)時,adminiEvent bean上不會調用searchClients方法。Boots在不調用服務器bean的輸入文本上觸發ajax事件
<b:inputText placeholder="nome" required="true" id="name"
value="#{adminiEvent.clientOnSearch.firstName}"
onkeyup="#{adminiEvent.searchingClients}" update=":adminiForm:clientSearchTable"
style="background: rgb(251, 251, 251) none repeat scroll 0% 0%;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);"
/>
有什麼想法嗎?
這裏的豆:
@ManagedBean(name="adminiEvent" , eager=true)
@ViewScoped
public class AdminiEvent {
...
public void searchingClients(){
List<Client> values = new ArrayList<Client>();
//build query
Map<String,Object> queryValues = new HashMap<String,Object>();
StringBuilder query = new StringBuilder();
query.append("Select c from Client c where ");
if(!StringUtils.isEmpty(clientOnSearch.getFirstName())){
query.append("c.firstName = :firstname");
queryValues.put("firstname", clientOnSearch.getFirstName());
}
if(!queryValues.isEmpty()){
values.addAll(clientService.findClientByFilter(query.toString(),queryValues));
}
clients.addAll(values);
}
...
感謝
這裏多試驗幾次我提出:
onkeyup="alert('test');ajax:adminiEvent.searchingClients;javascript:alert('test 2');"
value="#{adminiEvent.clientOnSearch.firstName}"
style="background: rgb(251, 251, 251) none repeat scroll 0% 0%;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);"/>`
它運行良好的第一和第二警報,但searchingClients不叫。我在服務器端的調試模式,我什麼都沒有。瀏覽器調試控制檯或服務器控制檯上也沒有顯示任何內容。
擷取畫面的HTML生成:
感謝
感謝斯蒂芬,但遺憾的是不工作也喜歡。因此,我在這裏做了以下修改:onkeyup =「ajax:adminiEvent.searchingClients」on the final html code:onkeyup =「; BsF.ajax.callAjax(this,event,'adminiForm:clientSearchTable','adminiForm:name',null,'更改');然後我更改了服務器方法:public String searchingClients(){....}如果我添加alert('test'); onkeyup,則會觸發該警報 –
我也將其更改爲:onkeyup =「ajax :adminiEvent.searchingClients()「但是沒有任何事發生 –
OK,剛剛看到你的bean沒有一個searchClients()方法,你必須使用方法的真實名稱和簽名,在你的情況下,應該是」ajax :adminiEvent.getSearchingClients()「。 –