如何根据方法返回值启用/禁用SelectManyCheck?

时间:2015-02-27 10:58:50

标签: jsf jsf-2

任何人都可以帮助从bean中的方法获取返回值,以通过基于所选单选按钮的jsf页面中的ajax ex(SelectManyCheckbox,textbox ..etc)来启用/禁用组件。首先应禁用SelectManyCheckbox组件,并根据选择启用它。该方法是检查值是“A”还是“B”,它将返回该值。这是方法代码:

private String firstToggle="True";    
public String firstToggle(AjaxBehaviorEvent e){

        firstToggle=requestType;
        System.out.print("Value "+firstToggle);

        return firstToggle;
    }

这里它将返回A或B.

但是,当我尝试禁用/启用SelectManyCheckbox组件时,当值为B时,SelectManyCheckbox组件将不会拾取disabled属性中的值。

 <p:selectManyCheckbox id="Cars" value="#{user.xyz}" layout="pageDirection" disabled="#{user.firstToggle}=='B')">
<f:selectItems value="#{user.xyz}" var="xyz" itemLabel="#{xyz}" itemValue="#{xyz}"/>
</p:selectManyCheckbox>

所以请帮助

1 个答案:

答案 0 :(得分:1)

根据Tiny的评论,您不希望将firstToggle用作Boolean / boolean的原因尚不清楚!但是,如果您有理由这样做,或者您正在另一个地方处理firstToggle,并且您想要使用它的价值&#39; A&#39;或者&#39; B&#39;在两个不同的p:selectManyCheckbox(&#34;其中一个应该启用,另一个应该被禁用&#34;正如你所说的那样),然后你可以实现第一个 {{1与disabled="#{user.firstToggle eq 'B'}"disabled="#{user.firstToggle eq 'A'}"第二个

如果您希望按照Tiny的建议使用disabled="#{user.firstToggle ne 'B'}" / Boolean,那么只需使用第一个boolean第二个disabled="#{user.firstToggle}"

NB: disabled="#{not user.firstToggle}"即使它是正确的,也没有任何意义,请使用private String firstToggle="True"; / Boolean和分配boolean,或指定true,这似乎意味着'A'有关您的背景。