Disabled和rendered属性的使用注意事项

来自软件实验室
跳转至: 导航搜索

实践中发现一个规律:JSF中的控件的disabled属性一旦置为false则无法通过ajax的页面局部刷新再次激活为true,比如:

        <h:commandButton action="#{returnProductHelper.confirmReturnProduct}"  
            value="确认退换货"
            disabled="#{not returnProductHelper.allowReturn()}"/>

上面的代码中,在初次页面显示时如果returnProductHelper.allowReturn()为false,则通过ajax局部刷新重新执行 returnProductHelper.allowReturn()返回true时,按钮仍然不能激活。

但是空间的rendered属性是可以使用ajax的页面局部刷新更新状态的,如下:

        <h:commandButton action="#{returnProductHelper.confirmReturnProduct}"  
            value="确认退换货"
            rendered="#{returnProductHelper.allowReturn()}"/>

即,可以局部刷新页面改变allowReturn()方法的返回值,隐藏或者显示”确认退换货“按钮。