Spring MVC求问 ????

注解进行后台校验,代码如下

 @RequestMapping(value="/add3.do")
    public String add3(Model model,@Valid UserInfo info,BindingResult result,String user_name){
        System.out.println("UserInfoController.add3()");
        System.out.println(info.getUserName()+"\t"+info.getPassword()+"user_name="+user_name );
        if(result.hasErrors()){
            model.addAttribute("errors", result.getFieldError().getDefaultMessage());
            return "user_add";
        }
        return "user_add";
    }

问题:
1. 现在@valid能对UserInfo这个bean进行校验,如果现在有需求对user_name进行校验如何编写处理?
2. 校验不通过的返回值如何传递,怎么处理得当到JSP那边获取比较方便,看网上其他帖子很多都是用form标签,不会这个,如果用其他的EL表达式等等怎么获取

通过@ModelAttribute 获取上一个页面的值,并且可以把值传到下一个页面
注意:被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用。
index.jsp页面:

        <div>
        <form action="/springMVC-spring/user/checkUser2" method="post">

        姓名:<input type="text" name="name">
        <br>
        密码:<input type="text" name="pwd">
        <br>
        <input type="submit" value="登录">

        </form>
       </div>

    controller类方法:

        @RequestMapping("/checkUser2")
        public String checkMemberUser2(@ModelAttribute("user")MemberUser user,ModelMap model)
        {

            String result=userSer.checkUser(user);

            model.put("result", result);

            return "turnPage";
        }

    turnPage.jsp 跳转页面:

        <h1>${result}!</h1>
        <br>
        <br>
        user:${user }
        <br>
        user.name:${user.name }
        <br>
        user.pwd:${user.pwd }

其他页面我不知道,但是freemarker可以很好的处理你这个问题哦。给你一个实例:


广告链接Url地址:
<@spring.formInput "linkAdv.linkUrl" />
 *<@spring.showErrors "
"/>

<@spring.showErrors "
"/>就是BindingResult里面的错误数量,你返回原有的页面,它自动会显示出来的,这个是和formInput标签配对使用
Controller层可以用BindingResult 的reject方法进行错误添加,如果你不想用这个BindingResult的话,也没关系,用一个Model对象,然后
addAttribute(...,....),前台用jstl表达式接受,颜色改成红色的,类似于:model.addAttribute("errSendName", obj[1].toString());
前台:${errSendName?default('')},,,,,这是freemarker的表达式