和没验证一样,没有填任何东西,照样跳转到page05-success.jsp

解决方案 »

  1.   

    那当然嘛,
    public String execute() {
    return SUCCESS;
    }
    跳转的页面是根据这个方法的返回值来的,返回的始终是"SUCCESS",肯定就始终会跳转到
    <result name="success" type="dispatcher">page05-success.jsp</result>这个页面。一般的做法是在execute中判断用户的合法性,然后再返回“SUCCESS”或者是“ERROR”
      

  2.   

    一般的做法是在execute中判断用户的合法性,然后再返回“SUCCESS”或者是“ERROR”
    ===============
    不是吧,我看过的教程都没有在execute判断,如果是那样,还要配置文件干什么?
      

  3.   

    1.你使用的是required验证,这个验证只是验证是否是null,(查看源码可以知道),但是对于一个文本框的提交,他的值是""不是null,所以验证通过,你应该使用requiredstring来验证。
    2.你验证的是username,而你的action中并没有username呀,你的action只有一个User呀,你是要验证User里面的username把,那么<field name="username">这个写法是错的,应该是<field name="user.username">
    3.还有如果表单没有采用webwork标签的form和text那么是不会有验证信息显示的,需要自己写一段jsp脚本才可以。
      

  4.   

    一般的做法是在execute中判断用户的合法性,然后再返回“SUCCESS”或者是“ERROR”
    ===============
    不是吧,我看过的教程都没有在execute判断,如果是那样,还要配置文件干什么?问题应该出现在Form05Action的getModel()里面,楼主的代码中
    Form05Action如果是继承了ModelDriven来实现数据的传递的话,参数前面是一定要加上model.XXX,所以在page05.jsp中应该是
    Username:<input type="text" name="model.username"><br/>
    Password:<input type="text" name="model.password"><br/>
    Email:<input type="text" name="model.email"><br/>
    Age:<input type="text" name="model.age"><br/>
    这样在执行Form05Action的execute之前,拦截器<interceptor-ref name="model-driven"/>才会拦截,把填入的参数写进对应的user.username、user.password等,
    可以设置断点调试一下,在执行execute()之前,肯定要先执行getModel(),先进行校验,然后把参数写进user的对应的属性里面。我所说的用户的合法性,是指此用户是否存在和用户跟密码是否相符(例如查询数据库),
    而楼主所提到的合法性,是指输入参数的校验,比如,不能为空,等等。
      

  5.   

    wangzhouyu(小小) 是对的,用requiredstring就行了。name="username"这样写也是对的,webwork2相当灵活谢谢
      

  6.   

    有没有webwork的qq群,或论坛啊?
      

  7.   

    为什么我验证下来只有requiredstring和email可以,其他验证都不起任何作用,郁闷!