struts2里,
假设action里有private User user;public User getUser() {
  return user;
}如果访问action时,输入xxx.action?user=1
就会报错,怎样解决这个问题啊?因为用户并不一定是老老实实通过鼠标点击的方式访问action,
极有可能是按照以上方式输入url的,但只要按照上面的方式访问action,就会报错。
并且这个问题不好避免,因为只要有action,就必定会有某些属性有get,set方法,或者
是只有get方法。怎样避免用户乱输url的时候报错呢?

解决方案 »

  1.   

    这个是action用到了struts2自带的过滤器,进行类型匹配,你可以在页面进行判断用户输入的字段类型啊
      

  2.   

    在action中try{}catch(){}
    出错了转向错误页面 、、谁叫他不好好点链接。。
      

  3.   

    需要做一下服务器端的验证在action中重写父类的validate()方法,在方法中进行提交参数的验证和过滤
    这样就不会有问题了
      

  4.   

    这个方法不错,或者写个异常嘛,它输入user=1,类型不匹配,就会抛出一个异常,然后框架解惑,转到错误页面就可以啦
      

  5.   


    按照你的意思,用户在地址栏输入: http://我日啊日
    我们也要管嘛!???
      

  6.   

    按照你的意思,用户在地址栏输入: http://我日啊日
    我们也要管嘛!???
    在正常url下后面跟参数应该考虑一下吧?你说的那种连url都不对怎么在考虑范围内?
      

  7.   

    用户在地址栏中输入参数,这是get传递参数方式,在地址栏输入一个url和在页面点击个url一样用拦截器防止没有权限的用户(可能是未登录用户)乱操作,是应该的但是有权限的用户,即使乱输入也没什么大不了!但是输入错误的话,希望可以用拦截器统一的指定到一个异常的页面
      

  8.   

    来者皆有分,13楼较接近正解
    因为我问的问题和资源,validate,action异常都无关,
    仔细观察服务器报出的错误信息后,实际上仅和url有关,因为struts2拦截器在类型转换失败后,
    会认为这是错误的url另:validate这个方法建议不要用,至于带来的麻烦可自行查阅书籍