0
我有一个ajax请求输出我一个dataTable和形式每行我也想执行一个button.Sadly没有事件被调用,我认为这是因为第二个按钮是在不同的级别比第一个搜索按钮。 JSF看起来就像这样:JSF Ajax CommandButton不同级别
<h:from>
<h:inputText id="search"
value="#{profileController.searchName}"/>
<h:commandButton value="Search by name"
action="#{profileController.searchProfileWithName(profileController.searchName)}">
<f:ajax execute="search"
render="output">
</f:ajax>
</h:commandButton>
<h:dataTable id="output"
value="#{profileController.searchResultList}"
var="p">
<h:column>
<f:facet name="header">Name</f:facet>
<h:outputText value="#{p.name}"/>
</h:column>
<h:column>
<f:facet name="header">Action</f:facet>
<h:commandButton value="Invite"
action="#{trainingController.inviteProfile(p)}">
<f:ajax/>
</h:commandButton>
</h:column>
</h:dataTable
</h:form>
JSF受管Bean(requestScoped):
public String searchProfileWithName(String name) {
searchResultList = profileBean.findProfilesWithName(name);
return null;
}
ProfileBean(无国籍):在这个
public List<Profile> findProfilesWithName(String name) {
Query query = em.createNamedQuery("findProfilesWithName");
query.setParameter("name", "%" + name.replace(" ", "%") + "%");
return query.getResultList();
}
任何人的想法?
你检查http://stackoverflow.com/questions/2118656/commandlink-commandbutton-backing-bean-action-method-not-invoked/2120183#2120183 ? – Smutje 2014-10-07 10:38:21
是的,我检查了它。不帮助我 – perotom 2014-10-07 15:47:36
如果'currentTraining'已经在backing bean中,你为什么通过EL传递'trainingController.currentTraining'?为什么不从支持bean中使用它并仅传递'p'?你也应该在这里发布你的支持bean,以展示你如何填充这个列表。 *发布的@Smutje列表中的*必须适用于您。这篇文章涵盖了所有可能的内容。 – kolossus 2014-10-09 00:40:43