本帖最后由 priestmoon 于 2010-03-19 11:17:40 编辑

解决方案 »

  1.   

    你可以看下浪溪的Struts2 类型转换这块视频教程
      

  2.   


    Re:可能我的表述有误。我说的前者不是指【在text框中什么也不输入,提交】这种情况;而是【输入"abc"后提交】情况下,【错误提示"invalid field value for field age" 】这段话。
    现在的情况是,我在validate()方法中可以提供整套错误提示,Struts2类型转换失败后生成的错误提示是多余的,画蛇添足的。
    您说的【根据不同的错误信息返回给前台页面提示输入错误】我没怎么看明白。因为我自定义的错误信息用的是addFieldError()方法添加的,而Struts2类型转换失败的错误信息也是field error。
    如果可以选择性分离,具体该如何操作呢?
      

  3.   


    那个是类型转换失败后Struts2自动生成的错误信息。这个和我在validate()方法中定义的错误信息有重复的地方。现在我想把Struts2自动生成的信息去掉,具体应该怎么做呢?
      

  4.   

    把<interceptor-ref name="conversionError"/>拦截器去掉
      

  5.   

    xwork.default.invalid.fieldvalue  把这个重新定义成你想输出的信息名
      

  6.   

    我郁闷
    你为什么这样判断也为什么不这样判断?
    try {

         int  temp=Integer.parseInt(this.age);
         
         if(temp>100||temp<1){
          
          errors.add("age",new ActionMessage("age.err"));
     //把age.err传递给ApplicationResources判断
         }
    }catch(NumberFormatException e){

    errors.add("age",new ActionMessage("age.err"));
    }
    return errors;
      

  7.   

    最关键是这句:是转型的int  temp=Integer.parseInt(this.age);同时给点分哈!!!谢谢!!!但是这样写也不全面,首先在页面上用JAVASCRIPT判断一次,进入LoginForm判断一次,再数据库及后面的操作再进行判断,这样才比较安全哈,个人意见,应该要4次判断,可能这样做也太!!!但是安全哈
      

  8.   

    最关键是这句:是转型的int  temp=Integer.parseInt(this.age);同时给点分哈!!!谢谢!!!但是这样写也不全面,首先在页面上用JAVASCRIPT判断一次,进入LoginForm判断一次,再数据库及后面的操作再进行判断,这样才比较安全哈,个人意见,应该要4次判断,可能这样做也太!!!但是安全哈