我试图将 commandLink 放在数据表的列中,但是单击链接,在 backbean 中未调用该方法,屏幕刷新并且没有任何反应。
我知道互联网上有几个关于我的问题的话题。我已经尝试了所有解决方案并且 donk 工作。我尝试更改 bean 的范围,尝试切换到 h:commandLink 我清理了我的 html 并删除了模板,但没有解决任何问题。我究竟做错了什么?按照我的代码:
我使用 glasshfish 3 和 primeface 3.5
xhtml:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head></h:head>
<h:body>
<h:form id="formTournament">
<p:messages id="messages" />
<p:dataTable id="tableTournaments"
value="#{tournamentBean.lazyModel}" var="tournament">
<p:column>
<p:commandLink id="signupt" action="#{tournamentBean.signUpTournament}"
update=":formTournament">
<f:setPropertyActionListener value="#{tournament}"
target="#{tournamentBean.selectedTournament}" />
</p:commandLink>
</p:column>
</p:dataTable>
</h:form>
</h:body>
</html>
豆
@ManagedBean
@ViewScoped
public class TournamentBean{
private Tournament selectedTournament;
public TournamentBean() {
this.selectedTournament = new Tournament();
}
public void signUpTournament() {
this.tournamentController.signUpTournament(this.selectedTournament);
}
//getters and setters
}
感谢帮助!