JSF EL字符串比较

时间:2014-06-09 05:04:49

标签: string jsf el

用于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>

1 个答案:

答案 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也相应地调整了大小。