用于inputText
的样式属性的EL有什么问题:
我可以在渲染时正确地在浏览器中看到inputText
的标题字符串,但是当我对其值进行一些字符串比较时,它总是返回155:
<h:inputText
id="filterTextInput" rendered="#{myBean.inputTypeText}"
value="#{myBean.value}" title="#{myBean.label}"
styleClass="textField floatL clearL"
style="width:#{myBean.label.contains('Location Full Name') ? '170' :
myBean.label.contains('Address Prefix') ? '93' :
myBean.label.contains('Address #') ? '70' :
myBean.label.contains('Address Suffix') ? '94' :
myBean.label.contains('Street Name') ? '171' :
myBean.label.contains('Customer Full Name') ? '80' :
myBean.label.contains('City') ? '132' :
myBean.label.contains('Zip') ? '50' :
myBean.label.contains('Building CLLI') ? '120' :
myBean.label.contains('Location ID') ? '120' : '155'}px">
<f:validator validatorId="locationInputValidator" />
<f:attribute name="maxLength" value="#{myBean.colspan}" />
</h:inputText>
答案 0 :(得分:1)
使用括号解决了问题:
<h:inputText
id="filterTextInput" rendered="#{myBean.inputTypeText}"
value="#{myBean.value}" title="#{myBean.label}"
styleClass="textField floatL clearL"
style="width:#{myBean.label.contains('Location Full Name') ? '170' :
(myBean.label.contains('Address Prefix') ? '93' :
(myBean.label.contains('Address #') ? '70' :
(myBean.label.contains('Address Suffix') ? '94' :
(myBean.label.contains('Street Name') ? '171' :
(myBean.label.contains('Customer Full Name') ? '80' :
(myBean.label.contains('City') ? '132' :
(myBean.label.contains('Zip') ? '50' :
(myBean.label.contains('Building CLLI') ? '120' :
(myBean.label.contains('Location ID') ? '120' : '155')))))))))}px">
<f:validator validatorId="locationInputValidator" />
<f:attribute name="maxLength" value="#{myBean.colspan}" />
</h:inputText>
现在,我在style属性中获得了适当的width值,并且inputText也相应地调整了大小。