JSF:操作调用时不需要的页面刷新

JSF:操作调用时不需要的页面刷新,jsf,refresh,Jsf,Refresh,有时,如果我单击调用操作方法的commandButton,它只会刷新页面,而不会实际调用该方法 我在该方法中设置了一个断点,如果发生这种行为,则不会调用该方法。还有一点很奇怪:如果我没有在输入组件中填入“required=true”的值,它也会这样做。我希望会出现一个valdiation错误。仅当操作方法被称为fine时,才会出现错误。但如果它只是发出那个奇怪的页面刷新,就不会了 呼叫看起来很正常,在大多数情况下都能正常工作: <h:commandButton value="Do some

有时,如果我单击调用操作方法的commandButton,它只会刷新页面,而不会实际调用该方法

我在该方法中设置了一个断点,如果发生这种行为,则不会调用该方法。还有一点很奇怪:如果我没有在输入组件中填入“required=true”的值,它也会这样做。我希望会出现一个valdiation错误。仅当操作方法被称为fine时,才会出现错误。但如果它只是发出那个奇怪的页面刷新,就不会了

呼叫看起来很正常,在大多数情况下都能正常工作:

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

我不能确切地指出这种行为何时出现(何时不出现),但它应该与在某些其他组件中选择的值有关。但是怎么做

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

我正在使用JSF2(MyFaces)+战斧

没有嵌套表单,h:消息在页面刷新后不显示任何内容

在处理表单提交请求期间,您可能在组件或其父组件上呈现了一个
属性,该属性的计算结果为
false
。您需要确保它的计算结果与显示页面时的计算结果相同。您可以通过将负责此操作的bean放在视图范围而不是请求范围中来实现这一点

另见:

那么您使用的是
呈现的
属性?如果它不起作用,那么您显然是在getter中而不是在action/event方法中做生意。也要解决这个问题