<s:if test='ISLOCK=="Y"'>是</s:if>
<s:if test='ISLOCK=="N"'>否</s:if>
不管是数字,CHAR,VARCHAR2都能正确判断,不要写成
<s:if test="ISLOCK=='N'">否</s:if>
注意单引号和双引号位置。
双引号在外的时候,如果数据类型是超过一个字符的类型,判断正常。
但是如果是一个字符,则无法判断,
<s:if test='ISLOCK=="N"'>否</s:if>
不管是数字,CHAR,VARCHAR2都能正确判断,不要写成
<s:if test="ISLOCK=='N'">否</s:if>
注意单引号和双引号位置。
双引号在外的时候,如果数据类型是超过一个字符的类型,判断正常。
但是如果是一个字符,则无法判断,
用 <s:if test="ISLOCK==/"N/"">否</s:if>这样也能判断出来,
但是无法和多个字符统一,所以推荐写法是单引号在外
例如这个语句
要判断struts堆栈里systemSettingModel.settingValue 是否等于 "A"
写成
<s:if test="systemSettingModel.settingValue == 'A'">...</s:if>
是不对的。
这样A被认为是字符,而systemSettingModel.settingValue是单字符的字符串,不匹配
应写成
<s:if test='systemSettingModel.settingValue == "A"'>。。。 </s:if>
或
<s:if test="systemSettingModel.settingValue == \"A\"">... </s:if>
参考:
http://struts.apache.org/2.1.8.1/docs/why-wont-the-if-tag-evaluate-a-one-char-string.html
另外systemSettingModel.settingValue的值可以这样取得
${systemSettingModel.settingValue}
<s:property value="systemSettingModel.settingValue"/>
<s:property value="#request.systemSettingModel.settingValue"/>
#表示不在struts堆栈里,没有#表示从struts堆栈里取
要判断struts堆栈里systemSettingModel.settingValue 是否等于 "A"
写成
<s:if test="systemSettingModel.settingValue == 'A'">...</s:if>
是不对的。
这样A被认为是字符,而systemSettingModel.settingValue是单字符的字符串,不匹配
应写成
<s:if test='systemSettingModel.settingValue == "A"'>。。。 </s:if>
或
<s:if test="systemSettingModel.settingValue == \"A\"">... </s:if>
参考:
http://struts.apache.org/2.1.8.1/docs/why-wont-the-if-tag-evaluate-a-one-char-string.html
另外systemSettingModel.settingValue的值可以这样取得
${systemSettingModel.settingValue}
<s:property value="systemSettingModel.settingValue"/>
<s:property value="#request.systemSettingModel.settingValue"/>
#表示不在struts堆栈里,没有#表示从struts堆栈里取
转载于:https://blog.51cto.com/ibird/988978