繁体   English   中英

<p:commandLink don't work in <p: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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM