Open hehongwei44 opened 7 years ago
相关链接:http://www.voidcn.com/blog/arctan90/article/p-1762619.html 相关链接:https://www.tianmaying.com/tutorial/spring-form-validation 相关链接:http://www.cnblogs.com/liukemng/p/3738055.html 关键字搜索:https://www.google.com/?gfe_rd=cr&ei=JblYWNK8CO7d8AfGkYzgBQ&gws_rd=ssl#q=thymeleaf+%E6%98%BE%E7%A4%BA+validation+error
实现目标
在这里我们建立一个简单的MVC应用,他能够接受用户输入,并对该输入用标准注解做校验。我们还会展示如何在屏幕上显示标准错误信息,这样用户可以得到提示一般重新输入正确的值。
准备工作
pom.xml配置
创建一个Person对象
这应用将会校验用户名和年龄,所以首先我们需要建立一个表示人的类
这个Person类有两个属性,一个名字一个年龄。他们被标记上了一些标准验证注解:
@Size(min=2, max=30) 只允许name2到30字节的长度;
@NotNull 不允许空值,这个空值是在没输入的情况下由Spring MVC自动生成的;
@Min(18) age低于18是不允许的(等于18可以)
另外,你还可以看到getter和setter,还有toString()
建立Web Controller
既然我们已经定义了一个实体,现在创建一个简单的Web Controller
这个控制器有针对GET和POST的方法,都映射在/目录上。
showForm方法返回form模板。在方法签名中包含一个Person对象,因而form模板可以从form属性中导入一个Person对象。
checkPersonInfo方法接受两个参数:
一个person对象,被标记为@Valid来保证在表单里填入的属性合法;
一个bindingResult对象,用了测试和检索合法性错误。
你可以检索从form边界到Person对象的所有的属性。在代码中,你测试了错误,如果出错了将把访问者返回到开始的form模板 如果所有的Person属性都是合法的,控制器将访问页面重定向到最终的results模板。
创建HTML的front和foot
现在我们创建"main"页面form.html
这个页面包含一个简单的form表单,表单里每个域都在单独的表格里。表单配置为/访问路径。表单被controller中GET对应方法所属的Person对象标记出来,这就是bean-backed form(度娘上没这个term的翻译,我斗胆翻成后台bean表单)。Person有两个域,你可以看到他们分别被标记为th:field="{name}"和th:field="{age}",紧随其后的是表示验证错误的元素。 最后,你有一个提交的button。一般来说,如果用户输入一个名字或年龄违反了@Valid限制符,它将返回到这个页面并带有错误信息显示出来。如果输入的有效的名字和年龄,用户会进入到下一个web页。
创建Application类
这个应用中,我们使用Thymeleaf语言模板。这个应用需要除了HTML之外更多的特性。