我在地址栏中输入:http://localhost:8080/testprj/hello.action?price=0hello.action对应HelloActionHelloAction类中有一个私有的属性:private Double price ; 并有getter和setter但是当我提交的时候,Action中的price属性并没有获取到值,出现错误 , 原因是 price为null,赋给Double出现了问题我想问的是:为什么请求参数为零struts2就获取不到呢?如果传递price=1就一切正常。求解!在线等!谢谢!

解决方案 »

  1.   

    楼主搞错了吧,Double 没传值默认是 null的,double 默认才是0.
      

  2.   

    奇怪,我的都不会(当price=0的时候)
      

  3.   

    这个正常情况下是不会的,应该不是0的问题,建议楼主看下传递过程,是否有定义多个price。
      

  4.   


    你试了可以传递过去??我的会出错,出错的大致意思是把Null赋给double出错,赋值失败
      

  5.   


    我真试过了。//Action
    public class T1 extends ActionSupport { private Double p;
    @Override
    public String execute() throws Exception {
    System.out.println(p);
    return super.execute();
    } public Double getP() {
    return p;
    } public void setP(Double p) {
    this.p = p;
    }
    }//配置 <package name="test"  namespace="/test"  extends="struts-default">
    <action name="t1" class="pc.tp.test.T1">
    <interceptor-ref name ="defaultStack"/> 
    <result name="success">t1.jsp</result>
    <result name="input">t1.jsp</result>
    </action>
    </package>访问http://localhost:8080/ReferenceCode_T400(web)/test/t1.do?p=111
      

  6.   

    我测试过了,Double类型的时候传0会出错,说类型无法转换,bouble也一样,但非零的可以。不知道是struts解析的时候把0当做string类型来转换,还是bug。
      

  7.   

    问题解决了,把jar包升级,xwork + struts2的jar包同时升级就可以解决了