解决方案 »

  1.   

    后台判断下呗:
    if(null == user.getUsername() || 0 == user.getUsername().trim().length()){
        throw new IllegalArgumentException("账号错误");
    }
      

  2.   


    可是这个时候后台已经报错了。user被实例化了,但是找不到username111属性,报NoSuchPropertyException。如何catch到这个Exception呢?
      

  3.   

    楼主自己看struts2文档里面的校验机制,有xml的也有annotation的
      

  4.   


    麻烦问下,应该在什么位置catch? 我尝试了几个地方,都catch不到。我知道大概流程是,提交表单,然后会去调用方法,比如UserAction中的login()方法,这个时候Struts2会根据user.username对user类中的username进行赋值,如果误写成user.username111会抛异常,可是在哪里catch呢?
      

  5.   

    这种错误应该是struts在初始化form对象的时候set属性值报错,你在UserAction中的login()方法中是catch不到的,因为还没到跳转这个类,至于对这种异常我感觉没必要刻意考虑吧,就算改了最多后台异常下,开发时候注意避免就好嘛
      

  6.   

    你说的是“username”改成“username111”是懂技术的人员故意改的,这种情况出异常也无所谓。只要不让有害的数据影响整个系统就行,
      

  7.   

    先创建action对象,然后执行set方法,但是action中没有setName111方法,无法try catch ,楼主说前台不安全,是说可以查看源代码然后 复制修改再向服务器发错误请求?个人感觉没有必要这么考虑,若这样的话,禁止查看源代码就是了。
      

  8.   

    就用js不行吗?直接导入jsp页面就行了,这种还是相对安全吧,猜测……
      

  9.   

    在前台判断非常不安全,别人可以改JS的吧。。
    说实在的,睡会那么无聊吧参数名改了呢,楼主是不是有点多虑了。这种情况真的想不出来有什么方法可以catch到!