任何人都可以帮助从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>
所以请帮助
答案 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'
有关您的背景。