【发布时间】:2016-04-06 22:34:03
【问题描述】:
当这个事件(onkeyup)被触发时,adminiEvent bean 上的方法 searchClients 不会被调用。
<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);"/>`
第一个和第二个警报运行良好,但未调用 searchClients。我在服务器端处于调试模式,但那里什么也没有。浏览器调试控制台或服务器控制台上也没有显示任何内容。
生成的 html 截图:
谢谢
【问题讨论】:
标签: jsf bootsfaces