有时,如果我单击调用操作方法的命令按钮,它只会执行页面刷新而不实际调用该方法!
我在该方法中设置了一个断点,如果发生此行为,则不会调用该方法。同样奇怪的是:如果我没有在具有"required=true"的输入组件中填充值,它也会这样做。我希望出现一个valdiation错误。仅当操作方法被调用为 fine 时,才会出现此错误。但如果它只会发出奇怪的页面刷新,则不会。
调用看起来很正常,并且在大多数情况下有效:
<h:commandButton value="Do something"
action="#{bean.doSomething(someBean.value)}" />
我无法确切地弄清楚这种行为何时出现(以及何时不出现),但它应该与其他一些组件中选择的值有关。但。。。如何?
(我在 xhtml 文件中有两个表单。我只是提到这一点,因为我不知道它是否重要。但是,没有嵌套表单,并且页面刷新后 h:messages 不显示任何内容。
我正在使用JSF 2(MyFaces)+ Tomahawk。
没有嵌套表单,H:Messages在页面刷新后不显示任何内容
您可能在组件或其父级之一上具有rendered
属性,该属性在处理表单提交请求期间评估了false
。您需要确保其评估结果与显示页面时相同。您可以通过将对此负责的 Bean 放在视图范围而不是请求范围来执行此操作。
另请参阅:
- 命令
- 按钮/命令链接/ajax 操作/侦听器方法未调用或输入值未更新