您的位置:首页 > 编程语言 > Java开发

springmvc数据的格式化及数据校验

2017-07-23 09:06 295 查看
一、数据的格式化

① 配置<mvc:annotation-driven></mvc:annotation-driven>
② 直接在要格式化的属性上加上格式化(这个格式是匹配你输入的数据的格式)

@DateTimeFormat(pattern="yyyy-MM-dd")

       privateDate birth;

       @NumberFormat(pattern="#,###,###.#")    //用#表示数值

       privateFloat salary;

格式化出错了怎么办?-----在目标方法中加上BindingResult参数,在调用其方法看其错误。

BindingResult父类是errors,所以BindingResult和errors都可以用于存储错误信息。

@RequestMapping(value="/emp", method=RequestMethod.POST)
public String save(@Valid Employee employee, Errors result, Map<String, Object> map){
if(result.getErrorCount() > 0){
System.out.println("出错了!");
for(FieldError error:result.getFieldErrors()){
System.out.println(error.getField() + ":" + error.getDefaultMessage());
}
//若验证出错, 则转向定制的页面
map.put("departments", departmentDao.getDepartments());
return "input";

二、数据校验

1). 如何校验 ? 注解 ?

①  使用 JSR 303 验证标准

②  加入 hibernate validator 验证框架的 jar 包

③  在 SpringMVC 配置文件中添加 <mvc:annotation-driven/>

④  需要在 bean 的属性上添加对应的注解(有很多注解,如@Email:必须是邮箱格式)

如在Employee类中的属性,      

@NotEmpty

                        private String lastName;

       ⑤. 在目标方法 bean 类型的前面添加 @Valid注解

public String save(@Valid
Employee employee, Errors result, Map<String, Object> map){

⑥ 但是运行的时候回报错,是jar包的错误

解决:将hibernatevalidator中的三个跟el相关的jar包复制到tomcat中,同时删除tomcat中的就可以了。其中,Errorsresult可以改为BindingResultresult

2). 验证出错转向到哪一个页面 ?

    注意: 需校验的 Bean 对象和其绑定结果对象或错误对象时成对出现的,它们之间不允许声明其他的入参。

public String handle91(@Valid User user, BingingResult userBindingResult, String sessionId, ModeluMap, mm, @Valid Dept dept, Errors deptErrors){
user和其绑定结果的对象及dept的其绑定结果的对象各自中间不能声明其他的入参。

3). 错误消息 ? 如何显示, 如何把错误消息进行国际化

显示:<form:errors path="*"></form:errors>   //显示所有的错误信息

或者可以在每个字段后面显示其错误,不过path要和这个字段名相同。

国际化:

①  springmvc.xml配置

②  在i18n.properties中

编写的格式是:校验注解名.请求域中对象名.属性名,如:

NotEmpty.employee.lastName=^^LastName\u4E0D\u80FD\u4E3A\u7A7A.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: