![](/img/trans.png)
[英]How to put p:commandLink with p:graphicImage in a dynamic columns datatable
[英]<p:commandLink don't work in <p:dataTable
我试图将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
}
感谢帮助!
谢谢大家的帮助,
我找到了解决方案,我的bean注释错误。 我正在导入错误的类javax.faces.view.ViewScoped。
正确的类是javax.faces。 bean .ViewScoped。
这就是为什么数据表中没有任何动作起作用的原因。 我的疑问是,为什么其他按钮可以计算出我应用程序中的数据表?
无论如何现在都可以。
对于管理器bean的每个属性,您必须具有各自的get和set。 另外,您还应该尝试使用action方法,而不要使用actionListing方法。 ActionListener用于在实际动作之前执行动作。 (有关它的更多信息,您必须阅读JSF生命周期)。
似乎还缺少管理器bean中的其他一些方法,例如lazyModel属性的get方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.