数据绑定和格式化ITeye - 威尼斯人

数据绑定和格式化ITeye

2019-01-11 23:48:06 | 作者: 凯时 | 标签: 数据,绑定,方针 | 浏览: 705

数据绑定流程

1.mvc主结构将ServletRequest方针及方针办法入参实例传递给WebDataBinderFactory实例

以创立DataBinder实例方针

2.DataBinder调用装配在Springmvc上下文中的ConversionService组件进行数据类型转化。

数据格式化作业。将Servlet中的恳求信息填充到入参方针中

3.调用Validate组件对现已绑定的恳求音讯入参方针进行数据合法性校验,并终究生成数据绑定

成果BindingData方针

4.Springmvc抽取BindingResult中入参方针和校验过错方针,将它们赋给处理办法的呼应入参



 

package com.hous.crud.converter;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
import com.hous.crud.bean.Department;
import com.hous.crud.bean.Employee;
@Component
public class EmployeeConverter implements Converter String, Employee {
 @Override
 public Employee convert(String source) {
 if(source != null) {
 String[] values = source.split("/");
 //hous/me@125.com/1/103
 if (values != null values.length == 4) {
 String lastName = values[0];
 String email = values[1];
 Integer gender = Integer.parseInt(values[2]);
 Department department = new Department();
 department.setId(Integer.parseInt(values[3]));
 Employee employee = new Employee(null, lastName, email, gender, department);
 return employee;
 return null;

 

 mvc:annotation-driven conversion-service="conversionService"/ 
 !-- 将自界说的转化器注册到springmvc上下文中 -- 
 bean id="conversionService" 
 property name="converters" 
 set 
 ref bean="employeeConverter"/ 
 /set 
 /property 
 /bean 

 

 form action="emp/add" method="post" 
 input name="employee" type="text" value="hous/me@125.com/1/103" 
 input type="submit" value="提交"/ 
 /form 
@RequestMapping(value={"/emp","/emp/add"}, method=RequestMethod.POST)
 private String add(Employee employee){
 employeeDao.save(employee);
 return "redirect:/list";
 }

 

@InitBinder

由@InitBinder标识的办法,可以对WebDataBinder方针进行初始化。

WebDataBinder是DataBinder的子类,用来完结由表单字段到JavaBean特点绑定

@InitBinder办法不能有返回值,有必要声明为void

@InitBinder办法参数通常是WebDataBinder

 @InitBinder
 public void initBinder(WebDataBinder dataBinder) {
 dataBinder.setDisallowedFields("lastName");
 }

 

关于mvc:annotation-driven

mvc:annotation-driven/ 会主动注册

RequestMappingHandlerMapping,

RequestMappingHandlerAdapter,

ExceptionHandlerExceptionResolver三个bean

还供给以下支撑:

-支撑ConversionService实例对表单参数进行类型转化

-支撑运用@NumberFormat、@DataTimeFormat注解完结数据类型的格式化

-支撑运用@valid注解对JavaBean实例JSR303验证

-支撑运用@RequestBody和@ResponseBody注解

 @DateTimeFormat(pattern="yyyy-MM-dd")
 private Date birth;
 @NumberFormat(pattern="#,###,###.#")
 private Float salary;

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表威尼斯人立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章