struts2 if標籤字符串判斷


<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>這樣也能判斷出來,
但是無法和多個字符統一,所以推薦寫法是單引號在外


例如這個語句 
要判斷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堆棧裏取
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章