【问题标题】:JSF: Unwanted page refresh on action callJSF:动作调用时不需要的页面刷新
【发布时间】:2011-05-20 12:06:07
【问题描述】:

有时,如果我单击一个调用操作方法的命令按钮,它只会刷新页面而不实际调用该方法!

我在该方法中设置了一个断点,如果发生这种行为,则不会调用该方法。它还有什么奇怪的:如果我没有在具有“required = true”的输入组件中填充值,它也会这样做。我预计会出现验证错误。仅当可以正常调用操作方法时才会出现错误。但如果它只是发出奇怪的页面刷新,则不会。

调用看起来很正常,并且在大多数情况下都能正常工作:

<h:commandButton value="Do something"  
                    action="#{bean.doSomething(someBean.value)}" />  

我无法准确确定此行为何时出现(何时不出现),但它应该与在其他一些组件中选择的值有关。但是……怎么办?

(我在一个 xhtml 文件中有两个表单。我只是提一下,因为我不知道它是否重要。但是,没有嵌套表单,并且 h:messages 在页面刷新后不显示任何内容。)

我正在使用 JSF 2 (MyFaces) + Tomahawk。

【问题讨论】:

    标签: jsf refresh


    【解决方案1】:

    没有嵌套的表单,并且 h:messages 在页面刷新后不显示任何内容

    在处理表单提交请求期间,您可能已经在组件或其父组件之一上评估了falserendered 属性。您需要确保它的评估结果与显示页面期间的评估结果相同。您可以通过将负责此操作的 bean 放在视图范围而不是请求范围中来做到这一点。

    另见:

    【讨论】:

    • 所以您使用的是rendered 属性?如果它不起作用,那么您显然是在 getter 内部而不是在动作/事件方法中做生意。修复这个问题stackoverflow.com/questions/2090033/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 2016-08-25
    • 2012-08-13
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多