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();
}
spring-mvc整合freemarker并在ftl模版中显示服务端校验的错误信息,JSR303或者JSR349的更多相关文章
- 【转载】Spring MVC 整合 Freemarker
前言 1.为什么要使用Spring MVC呢? 2.为什么要使用Freemarker呢? 3.为什么不使用Struts2呢? 此示例出现的原因就是发现了struts2的性能太差,所以学习Spring ...
- Spring MVC整合 freemarker
1.什么是Spring MVC? Spring MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦,基于请求驱 ...
- Spring mvc整合freemarker详解
1.什么是FreeMarker FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式 ...
- Spring MVC整合FreeMarker
什么是Freemarker? FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或 ...
- springboot学习笔记:5.spring mvc(含FreeMarker+layui整合)
Spring Web MVC框架(通常简称为"Spring MVC")是一个富"模型,视图,控制器"的web框架. Spring MVC允许你创建特定的@Con ...
- 【FreeMarker】Spring MVC与FreeMarker整合(二)
前一篇介绍了FreeMarker的基本使用,本例介绍Spring MVC与FreeMarker整合 不熟悉项目搭建,可参考 [FreeMarker]FreeMarker快速入门(一) 整合 1.新建S ...
- Spring Boot 整合 Freemarker,50 多行配置是怎么省略掉的?
Spring Boot2 系列教程接近完工,最近进入修修补补阶段.Freemarker 整合貌似还没和大家聊过,因此今天把这个补充上. 已经完工的 Spring Boot2 教程,大家可以参考这里: ...
- Spring Boot2 系列教程(十)Spring Boot 整合 Freemarker
今天来聊聊 Spring Boot 整合 Freemarker. Freemarker 简介 这是一个相当老牌的开源的免费的模版引擎.通过 Freemarker 模版,我们可以将数据渲染成 HTML ...
- Spring Boot 整合 Freemarker
Spring Boot 整合 Freemarker 1.Freemarker 简介 2.Spring Boot 整合 Freemarker 2.1 创建工程 2.2 创建类 2.3 其他配置 原文地址 ...
随机推荐
- css清除浮动的两种方式(clearfix和clear)
最近总是在用浮动,这两种方式总是浮现在眼前,或者说去掉父级和同级浮动样式总在思考中.两种方式怎么写都在base.css中. 在做瑞祥之旅的过程中,还是吃了一个大亏,就是清除浮动,不管是同级还是父级,都 ...
- 强大的日志分析工具 -- NSLogger
转:http://www.cnblogs.com/yingkong1987/p/3329945.html 强大的日志分析工具 -- NSLogger 源码:https://github.com/fpi ...
- 《Python 学习手册4th》 第七章 字符串
''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书) “重点 ...
- A Blind Watermarking for 3-D Dynamic Mesh Model Using Distribution of Temporal Wavelet Coefficients
这周看了一篇动态网格序列水印的论文,由于目前在网格序列上做水印的工作特别少,加之我所看的这篇论文中的叙述相对简洁,理解起来颇为困难.好在请教了博士师兄,思路明朗了许多,也就把这思路整理在此了. 论文作 ...
- 1.3……Eclipse下开发Android相关知识
Android应用目录结构 src -------------------------------------------java原代码存放目录 gen ----------------------- ...
- SeaJS学习笔记(一) ./ 和 ../ 区别
最近要去实习,公司里使用sea.js进行模块化开发 具体下载安装就不多说了,请参见SeaJS官网 <!DOCTYPE html> <html> <head> < ...
- openstack配置增加
控制节点nova配置增加 vif_plugging_is_fatal = Falsevif_plugging_timeout = 0scheduler_default_filters = AllHos ...
- 第二百九十九天 how can I 坚持
不是傻,就是因为人太好了,我宁愿相信是我人太好了,好吧,我就是对人都挺好,这是病吗. 昨天一起吃的饭一起AA了,挺好,这种事就得AA,玩的挺happy. 还有.感觉自己好傻,老是遇事焦虑,以后试着改变 ...
- c函数调用过程原理及函数栈帧分析
转载自地址:http://blog.csdn.net/zsy2020314/article/details/9429707 今天突然想分析一下函数在相互调用过程中栈帧的变化,还是想尽量以比 ...
- awk的二维数组
awk是不支持二维数组的,它的底层是一维数组,将两个key拼接为一维数组的key. 如下是其初始化和遍历 awk 'BEGIN{ for(i=0;i< 3; ++i) for(j = 0; j ...