structs2 的action中定义了布尔类型的属性,jsp页面中传过来的是0或者1,但不管传过来0或者1都是false,如何处理接收到1是true 接收到0死false?

解决方案 »

  1.   

    应该是页面标签使用错误,action中属性赋值失败才会一直是false。
    JSP页面赋值类型应该与action中属性类型保持一致,如果必须要转换,
    可以在action中接受整形后再强制转换成布尔型。
      

  2.   


    你确定Java会将0或者1转换成true和false? 还是老老实实传true和false吧,或者用一个int来接收。貌似C++可以自动转化,我记忆当中的Java貌似不行。
      

  3.   

    数据库中存储的是0和1,读出后可以自动转换为true和false,为啥页面传进来的不能自动抓换呢? 是hibernate的原因么?
      

  4.   

    0,1自动转成true false那是C++或者js才有的,你要把0,1转成boolean直接在这个set方法里接收Integer的值
    例如action中有boolean变量flag;boolean flag;
    public void setFlag(Integer flag){//这里用Integer接收就行了
        flag==1?this.flag=true:this.flag=false;
    }
      

  5.   

    是不是hibernate原因,只要你查看一下他的源代码就知道了。
    既然尝试了不能,那就是他没有帮你写转型代码而已。自己写一段就ok啦
      

  6.   

    灵活点要么直接传递true或false的字符串到后台,后台用布尔类型接受,要么传数值,后台用int类型接受,然后自己做判断.要么自己写个转换器,想怎么转换就怎么转换,别说0是true了,就是a也可以转换成true,当然我觉得转换布尔类型的没必要吧,复合类型需要考虑
      

  7.   

    涉及到struts类型转换的问题,这个直接这么处理好了,用struts判断标签判断当等于1的时候显示true,否则显示false即可。