我看到了一个奇怪的缺陷。这是一个简单的测试用例。
托管 bean 是:
@ManagedBean
public class Controller {
private int counter = 0;
//getter and setters...
public String next() {
++counter;
return null;
}
public String prev() {
--counter;
return null;
}
}
观点是:
<h:form>
<p>Value: #{controller.counter}</p>
<h:inputHidden value="#{controller.counter}" />
<h:commandButton action="#{controller.prev()}" value="Previous" disabled="#{controller.counter == 0}"/>
<h:commandButton action="#{controller.next()}" value="Next" disabled="#{controller.counter == 5}"/>
</h:form>
当视图首次显示时,Previous 按钮被禁用。当我单击下一步时,将启用上一个按钮。到目前为止,一切都很好。但是,当我单击上一个按钮时,操作处理程序方法 prev() 永远不会被调用。如果我删除按钮的禁用属性,那么一切正常。我做错了什么还是 Mojarra 有缺陷?我正在使用 JBoss 7.1 和 Mojarra。谢谢。