【问题标题】:Primefaces CommandButton not working inside DataTablePrimefaces CommandButton 在 DataTable 中不起作用
【发布时间】:2014-04-28 18:23:15
【问题描述】:

我在数据表之外有一个可以正常工作的 primefaces commandButton。在 dataTable 中,我有完全相同的 commandButton,但是当单击 dataTable 中的那个时,它不会调用 actionListener:

 <h:body>
    <h:form>
        <p:messages autoUpdate="true" showDetail="true" closable="true"/>
        <p:accordionPanel >  
            <p:tab title="Visualize data">
                <p:commandButton value="Add Domain" actionListener="#{TripleStoreController.addDomain('Domain')}"
                                 update="DomainSkillTable"/>
                <p:dataTable 
                    id="DomainSkillTable"
                    var="result"
                    value="#{TripleStoreController.domainResults}"
                    rowKey="#{result}">
                    <p:column>
                        #{result}
                    </p:column>
                    <p:column>
                        <p:commandButton value="Add Domain" actionListener="#{TripleStoreController.addDomain('Domain')}"
                                         update="DomainSkillTable"/>
                    </p:column>
                </p:dataTable>
            </p:tab>
        </p:accordionPanel>  
    </h:form>
</h:body>

【问题讨论】:

  • 我将您的代码复制并粘贴到网页中,并使用该方法和属性创建了一个支持 bean,两个按钮都可以工作,所以我不确定您的情况是怎么回事。我正在使用 PrimeFaces 4.0、JSF Mojarra 2.2.1 和 GlassFish EL 2.2。您是否在数据表按钮上收到任何错误消息?
  • @LucasP 我没有收到与数据表按钮相关的错误消息。

标签: ajax jsf primefaces


【解决方案1】:

应该可以了。 没有错误,我只是在我的 java 类中为相同的方法 TripleStoreController.addDomain('Domain') 复制并制作回 bean,方法签名如 public void addDomain(String s) 和方法有效。 即使我在我的后台 bean 中通过命令按钮将值传递为“域”。

【讨论】:

    【解决方案2】:

    在我的例子中,我只是将我的 bean 从 @RequestScoped 变成了 @ViewScoped,它解决了我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-01
      • 2013-12-31
      • 2015-03-26
      • 1970-01-01
      • 1970-01-01
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多