<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以上就会判断出错  

解决方案 »

  1.   

    那怎么转换成float来比较呢   肿么改啊
      

  2.   

    刚才看了,OGNL表达式会自动类型转换的 。。
      

  3.   

    <s:if test="#fenxi5.result > #fenxi5.lastResult">
      

  4.   

    <s:if test="%{fenxi5.result}>%{fenxi5.lastResult}">试试!
      

  5.   

    我把原因都给你找着了,楼主你就自己费点心思去多目的地些文档资料,怎么用Struts2标签去比较数字。
    实在不行,你就在页面用Java代码就行了。
      

  6.   

    一开始我也觉得可能是类型的问题  想了想  为什么10以下是可以判断的(必然是数字的判断)  而且查了资料OGNL表达式子会自动进行类型转换的  难道10以上会变成字符串的比较吗 这应该不大可能  很纠结
      

  7.   

    你在公用的什么地方对象里写一个
    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)"/>
      

  8.   

    ognl不知道应该怎么处理。1、可以更改java类对象中的类型,将String改为double;
    2、可以用js,字符串补0后再做比较。
      

  9.   

    暂时这么解决吧   
    我是这么认为的  如果fenxi5.result和fenxi5.lastResult为整型就是int型的 
     <s:if test="%{fenxi5.result-fenxi5.lastResult>0}">这样就能解决10以上的问题
    如果fenxi5.result和fenxi5.lastResult为浮点型就是float型的
     <s:if test="%{fenxi5.result*100-fenxi5.lastResult*100>0}">这样能解决如果为小数点型(两位小数)问题是解决了    不过还是求大神告诉  为什么会这样  难道10以上会默认转换为字符串?
      

  10.   

    用excel的格式表示给你看数字:右对齐
    100
     99
    ------------
    字符:左对齐
    100
    99
    ---------
    1 < 9
    所以我上面说让你补“0”
    100
    099
    ------------
    1 > 0