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

struts2的if标签配合OGNL出错
<s:if test="%{fenxi5.result>fenxi5.lastResult}">
  >
  </s:if>
  <s:else>
<s:if test="%{fenxi5.result==fenxi5.lastResult}">
=
</s:if>
<s:else>

</s:else>
  </s:else>

如果fenxi5.result等于10 fenxi5.lastResult等于9.75
页面显示:今天 10 < 上次 9.75

每次如果fenxi5.result超过10都会自动变成小于号,在10以下判断是好的。 fenxi5.result和fenxi5.lastResult在类里面是string型的 求大神 为什么10以上就会判断出错

------解决方案--------------------
自己动手解决问题的过程也是程序员技术提高的过程。
------解决方案--------------------
你在公用的什么地方对象里写一个
Strng compareResult(String firstRs,String lastRs){
if(...)return ">";
else if(...)return "=";
else return "<";
}

jsp就直接调用,比如:<s:property value="@com.demo.Category@compareResult(fenxi5.result,fenxi5.lastresult)"/>
------解决方案--------------------
ognl不知道应该怎么处理。

1、可以更改java类对象中的类型,将String改为double;
2、可以用js,字符串补0后再做比较。
------解决方案--------------------
探讨
不过还是求大神告诉 为什么会这样 难道10以上会默认转换为字符串

------解决方案--------------------
用excel的格式表示给你看

数字:右对齐
100
 99
------------


字符:左对齐
100
99
---------
1 < 9


所以我上面说让你补“0”
100
099
------------
1 > 0

------解决方案--------------------
楼上的真高,太蛋疼了