写法有多种,应该可以任意组合,最重要的是要引入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();
}

spring-mvc整合freemarker并在ftl模版中显示服务端校验的错误信息,JSR303或者JSR349的更多相关文章

  1. 【转载】Spring MVC 整合 Freemarker

    前言 1.为什么要使用Spring MVC呢? 2.为什么要使用Freemarker呢? 3.为什么不使用Struts2呢? 此示例出现的原因就是发现了struts2的性能太差,所以学习Spring ...

  2. Spring MVC整合 freemarker

    1.什么是Spring MVC? Spring MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦,基于请求驱 ...

  3. Spring mvc整合freemarker详解

    1.什么是FreeMarker FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式 ...

  4. Spring MVC整合FreeMarker

    什么是Freemarker?    FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或 ...

  5. springboot学习笔记:5.spring mvc(含FreeMarker+layui整合)

    Spring Web MVC框架(通常简称为"Spring MVC")是一个富"模型,视图,控制器"的web框架. Spring MVC允许你创建特定的@Con ...

  6. 【FreeMarker】Spring MVC与FreeMarker整合(二)

    前一篇介绍了FreeMarker的基本使用,本例介绍Spring MVC与FreeMarker整合 不熟悉项目搭建,可参考 [FreeMarker]FreeMarker快速入门(一) 整合 1.新建S ...

  7. Spring Boot 整合 Freemarker,50 多行配置是怎么省略掉的?

    Spring Boot2 系列教程接近完工,最近进入修修补补阶段.Freemarker 整合貌似还没和大家聊过,因此今天把这个补充上. 已经完工的 Spring Boot2 教程,大家可以参考这里: ...

  8. Spring Boot2 系列教程(十)Spring Boot 整合 Freemarker

    今天来聊聊 Spring Boot 整合 Freemarker. Freemarker 简介 这是一个相当老牌的开源的免费的模版引擎.通过 Freemarker 模版,我们可以将数据渲染成 HTML ...

  9. Spring Boot 整合 Freemarker

    Spring Boot 整合 Freemarker 1.Freemarker 简介 2.Spring Boot 整合 Freemarker 2.1 创建工程 2.2 创建类 2.3 其他配置 原文地址 ...

随机推荐

  1. CKEditor如何统计文字数量

    今天在修改v5后台的比赛系统时,发现文本框需要限制输入字数.我们这个系统用的是3.6.3版本的,前台代码是这样的 <script> //编辑器 CKEDITOR.replace('matc ...

  2. 零基础编程指南(By Turtle)

    [零.基础] 1.看文章:<程序猿搜索的技巧>(未完成) [一.入门] 学习语言:VB 安装:下载VB6即可 教程:<李天生vb从入门到精通>http://www.xin372 ...

  3. Java—Map.Entry

    Map是java中的接口,Map.Entry是Map的一个内部接口. Map提供了一些常用方法,如keySet().entrySet()等方法. keySet()方法返回值是Map中key值的集合:e ...

  4. [Papers]NSE, $\p_3u$, multiplier spaces [Guo-Gala, ANAP, 2013]

    $$\bex \p_3\bbu\in L^\frac{2}{1-r}(0,T;\dot X_r(\bbR^3)),\quad 0\leq r\leq 1. \eex$$

  5. gitlab的使用

    Gitlab的使用 最近成功的在公司部署了gitlab,鉴于同学们还不会使用,这里写篇博客说明下.如果想安装gitlab的话,需要一些linux的基础知识,我在这里记录了我安装的参考<http: ...

  6. C# winform 若要在加载设计器前避免可能发生的数据丢失,必须纠正以下错误

    winform中有时添加了新控件之后编译会报错: 若要在加载设计器前避免可能发生的数据丢失,必须纠正以下错误,如图: 解决方案: 1.“解决方案”→“批生成”→“清理”→“确定”: 2.“解决方案”→ ...

  7. duilib corner属性的贴图技巧——让图片自动贴到控件的的某一边或者一角并自适应控件的大小

    转载请说明原出处,谢谢~~ Duilib给控件贴图功能可以附带多个属性,各个属性的配合可以达到许多效果.以下是duilib支持的所有贴图属性: 贴图描述: Duilib的表现力丰富很大程度上得益于贴图 ...

  8. 学习笔记——XSLT转换器的使用(Xalan和Saxon) .(转)

    转自:http://blog.csdn.net/crystalbruce/article/details/7401602 XSLT分为两类: 1:客户端转换:需要浏览器的支持. 2:服务器转换:需要使 ...

  9. 基于Python的Grib数据可视化

    http://www.cnblogs.com/kallan/p/5160017.html

  10. 判断文件结束,feof……

    因为文本文件中存储的是ASCII码,而ASCII码中FF代表空值(blank),一般不使用,所以如果读文件返回了FF,说明已经到了文本文件的结尾.但是如果是二进制文件,其中可能会包含FF,因此不能把读 ...