1

我试图将 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

}

感谢帮助!


对于 manager bean 的每个属性,您必须具有各自的 get 和 set。此外,您还应该尝试使用 action 方法而不是 actionListing 方法。ActionListener 用于在实际操作之前执行操作。(有关它的更多信息,您必须阅读 JSF 生命周期)。

似乎还缺少管理器 bean 中的一些其他方法,例如,lazyModel 属性的 get 方法。

4

2 回答 2

1

谢谢大家的帮助,

我找到了解决方案,我的 bean 注释是错误的。我导入了错误的类 javax.faces.view.ViewScoped。

正确的类是 javax.faces。.ViewScoped。

这就是为什么数据表中没有任何一项操作有效的原因。我的疑问是,为什么其他按钮可以解决我的应用程序中的数据表?

无论如何,现在一切正常。

于 2013-08-30T13:19:32.850 回答
0

对于 manager bean 的每个属性,您必须具有各自的 get 和 set。此外,您还应该尝试使用 action 方法而不是 actionListing 方法。ActionListener 用于在实际操作之前执行操作。(有关它的更多信息,您必须阅读 JSF 生命周期)。

似乎还缺少管理器 bean 中的一些其他方法,例如,lazyModel 属性的 get 方法。

于 2013-08-30T03:48:50.847 回答