【问题标题】:primefaces commandbutton update does not work [duplicate]primefaces commandbutton更新不起作用[重复]
【发布时间】:2014-01-10 12:58:22
【问题描述】:

我已经最小化了我的代码,以便更好地向您展示什么不起作用。

<h:body>
<f:view>
    <h:form id="wbSelectForm">
        <p:commandButton id="viewWorkbenchButton" icon="ui-icon-show"
            title="View Workbench" update=":wbTestPanel"
            actionListener="#{WorkbenchControllerBean.test}">
        </p:commandButton>
    </h:form>

    <p:panel id="wbTestPanel">
            Test: Active Wb: #{WorkbenchControllerBean.number}
    </p:panel>
</f:view>
</h:body>

当我按下commandButton 时,我希望'wbTestPanel' 正在更新,但不知何故不会发生。我知道是因为 WorkbenchControllerBean.getNumber() 没有被调用。

我使用的是 primefaces 3.5。我已经尝试了“进程”属性的不同值以及将RequestContext.getCurrentInstance().update("wbTestPanel")in WorkbenchControllerBean.test()-方法。

我认为代码可能是正确的,但项目或运行时环境(Java 7 + JBoss 7.1.1)中有任何设置阻止 primefaces 更新另一个面板。你能告诉我要搜索什么吗?

提前致谢!

【问题讨论】:

  • 你的wbTestPanel在客户端获取的是哪个id?使用萤火虫检查它
  • 对不起,我发现在 html-tag 中有一个 f:event> 引发异常的事件,该异常未显示在日志中,但阻止了页面的呈现......因此它与“正常”更新问题无关。跨度>
  • 因为您是 stackoverflow 的新手,所以只是一些提示。尝试提供可能影响问题代码的所有内容,因为它也是重现错误所需的代码的最小版本。理想的做法是关注sscce model

标签: jsf primefaces commandbutton


【解决方案1】:

你确定调用了 test() 方法吗? 如果是,您可以尝试以下更新表达式吗?

update="@([id$=wbTestPanel])"

否则,可能会因为验证错误而没有调用 test() 方法。如果是这种情况,您可以使用 debug 或 firebug 进行检查。

【讨论】:

    【解决方案2】:

    id之前使用:


    记住


    1. 如果您进行对话。

    2. 在Dialog之前的旧表单标签应该被关闭。

    3. 那么dialogue内容应该换成另一种形式。

    4. 使用update=":dialougeid, :dialougeFormId"

    【讨论】:

    • 1,2,3 问题中没有对话。 4、为什么?
    猜你喜欢
    • 2015-03-26
    • 1970-01-01
    • 2016-01-16
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    • 2015-08-29
    相关资源
    最近更新 更多