日期:2014-05-17  浏览次数:20713 次

struts2 if标签的中文判断没反应是什么原因?
<s:if test="%{impact=='HIGH'||impact=='高'}">
  <img src="/${lanname}/images/high_1.gif" width="37" height="13" />
  </s:if>
  <s:elseif test="%{impact=='MEDIUM'||impact=='中'}">
  <img src="/${lanname}/images/medium_1.gif" width="37" height="13" />
  </s:elseif>
  <s:else>
  <img src="/${lanname}/images/low_1.gif" width="37" height="13" />
  </s:else>
impact 中文打印出来的值不是乱码,就是判断不执行,英文正常,这是为什么呢?

------解决方案--------------------
impact.equals(“”)
这个吧···
没用过struts2 不知道里面的
------解决方案--------------------
struts2 标签没用过
不会 也帮不了你
------解决方案--------------------
<%@ page contentType="text/html; charset=UTF-8"%> lz 你的是不是用utf-8啊? 不就试试吧。我想这个应该是编码的问题

------解决方案--------------------
<s:if test="%{impact=='HIGH'||impact=='高'}"> 

改成 <s:if test="impact=='HIGH'||impact=='高'"> 


试试~

还有就算是传值 也应该是$ 而不是 % 吧
------解决方案--------------------
探讨
<s:if test="%{impact=='HIGH'||impact=='高'}">

改成    <s:if test="impact=='HIGH'||impact=='高'">


试试~ 

还有就算是传值  也应该是$ 而不是 %吧

------解决方案--------------------
把中文传进去时,打出来看看就知道了!
------解决方案--------------------
impact==\"HIGH\"||impact==\"高\"

改成这个试试
------解决方案--------------------
<s:if test="%{impact== \"HIGH\"||impact=='高'}">
或者
<s:if test="%{impact== \"HIGH\"||impact=="\高\"}">

------解决方案--------------------
《把impact 后面多加一个空格就可以比较》

 不可能存在这种问题,我都调试通过了。我用的struts2.1.6


------解决方案--------------------
Jsp代码:

1>.字符串数字比较(1位):<s:if test="%{number1 == 1}">
2>.字符串数字比较(多位):<s:if test="%{number2 == 11}">
3>.字符串字母比较(1位):<s:if test="%{text1 == \"2\"}">
4>.字符串字母比较(多位):<s:if test="%{text2 == \"22\"}">
5>.汉字(1位):<s:if test="%{kanji1 == \"汉\"}">
6>.汉字(多位):<s:if test="%{kanji2 == \"汉语\"}">

Action初始化:

// 初期化
form.setNumber1("1");
form.setNumber2("11");
form.setText1("2");
form.setText2("22");
form.setKanji1("汉");
form.setKanji2("汉语");

注:属性我用的是模型驱动,JSP和Action编码格式都是UTF-8。