zoukankan      html  css  js  c++  java
  • spring-mvc整合freemarker并在ftl模版中显示服务端校验的错误信息,JSR303或者JSR349


    写法有多种,应该可以任意组合,最重要的是要引入spring.ftl


    1.Bean里面的就不再多写了,来个简单就可以了

    @NotEmpty(message="用户密码码不可为空")  或者写在get方法上
    private String userPassword;


    2.Controller里面的写法有几种,看个人习惯


        (1).先看第一种这个是返回String的,参数中有@ModelAttribute("user"),在页面中会用到,稍后再说

    @RequestMapping(value="login",method=RequestMethod.POST)
    	public String login(@ModelAttribute("user") @Valid User user, BindingResult br){
    		if(br.hasErrors()){
    			return "login";
    		}else{
    			return "redirect:index.jsp";
    		}
    }
    


       (2).第二种,这种同样返回String,但是参数有变化,

    public String login(@Valid User user, BindingResult br, ModelMap model){
    		if(br.hasErrors()){
    			model.addAttribute("user", user);
    			return "login";
    		}else{
    			return "redirect:index.jsp";
    		}
    }
    


        (3)第三种,返回值的变化,同样可以改变参数

    public ModelAndView login(@ModelAttribute("user") @Valid User user, BindingResult br){
    		if(br.hasErrors()){
    			return new ModelAndView("login");
    		}else{
    			return new ModelAndView("redirect:index.jsp");
    		}
    }
    


    ........................看到这,你可能已经看出来其实也没什么,就是使用不同的类型来存放user

    3.再看模版中的写法,有两种

    (1).一个是bind的方式,这个就是遍历了

    <@spring.bind "user.userCode" />

    <li><input type="text" name="userCode" value="${spring.status.value?default("")}" /></li>
    <#list spring.status.errorMessages as error> <b>${error}</b> <br> </#list>


    (2).第二个是输出标签,少写一部分东西

    <@spring.formInput "user.userCode" />
    <@spring.showErrors "" />


    最后。。。。就是你随意组合吧,都可以正常显示结果


    刚开始用spring,花了三个多小时才让这个显示出来,就是有个地方没有注意,刚开始进这个页面的时候,user是空的,所以页面会报错,在POST方法中怎么添加user都出错,竟然一直没有注意,真实悲催啊,后来发现之后就很顺畅了,几分钟全部可以测试出来。

    可以来个简单的写法,这样就不会出错了,也可以在get方式进这个页面的时候在Model中new一个空的user,完全看个人习惯。

    @ModelAttribute("user")
    public User getUser() {
    return new User();
    }




  • 相关阅读:
    Springboot系列 1
    从-1起步学习SpringBoot
    WinForm与WPF下跨线程调用控件
    利用FileSystemWatcher实现磁盘文件监控
    HashTable初次体验
    【原创】国网远程加密机认证软件开发2(认证步骤及代码)
    【原创】国网远程加密机认证软件开发1(相关说明)
    第一次做socket的一些心得
    ArchLinux 安装记录
    oh my zsh安装
  • 原文地址:https://www.cnblogs.com/pangblog/p/3246706.html
Copyright © 2011-2022 走看看