在faces-config.xml中定义了一个转换器,该转换器将布尔值更改为字符串“是”或“否”
<converter>
<converter-id>booleanConverter</converter-id>
<converter-class>com.example.BooleanConverter</converter-class>
</converter>
这可以正常使用
<h:outputText value="#{bean.booleanValue}" converter="booleanConverter" />
但是,如果要对周围的div
元素进行样式设置,是否可以使用转换器?例如,如果定义了一个返回字符串“ booleanTrue”和“ booleanFalse”(在CSS中定义)的Converter,
<converter>
<converter-id>booleanStyleConverter</converter-id>
<converter-class>com.example.BooleanStyleConverter</converter-class>
</converter>
我可以做类似的事情:
<div class="#{booleanStyleConverter.getAsString(null,null,bean.booleanValue)}">
<h:outputText value="#{bean.booleanValue}" converter="booleanConverter" />
</div>
定义支持Bean的方法,但效果不理想
public String booleanStyle(boolean value) {
BooleanStyleConverter bsc = new BooleanStyleConverter();
return bsc.getAsString(null, null, value);
}
转换器的全部目的是将保存到后备bean的值更改为所需的值。为什么不只是使用class="#{bean.booleanValue}"
?
甚至更简单的是:class="textBox.value eq 'true'? 'booleanTrue': 'booleanFalse'"
,textBox
文本框的绑定在哪里:
<div class="#{textBox.value eq 'true'? 'booleanTrue': 'booleanFalse'}">
<h:outputText binding="#{textBox}" id="textBox" value="#{bean.booleanValue}"/>
</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句