一.单日期格式
因为是用注解完完成的后台访问,所以必须在大配置中配置包扫描器;
1.applicactionContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd "> <!-- 配置包扫描器--> <context:component-scan base-package="cn.happy.controller"></context:component-scan> </beans>
2.配置类
package cn.happy.controller; import java.text.SimpleDateFormat; import java.util.Date; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.stereotype.Controller; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class FirstController { /** * @param binder */ @InitBinder public void initBinder(WebDataBinder binder){ //PropertyEditor //类 implements PropertyEditor binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true)); } @RequestMapping("/first.do") //类型转化工作一定是在真正的handler方法执行前执行的。 public String doFirst(Date birthday,int age) throws Exception{ System.out.println(birthday+"==============="); System.out.println(age+"==============="); return "/WELCOME.jsp"; } }
3.前台
<form action="${pageContext.request.contextPath }/first.do" method="post"> 出生日期:<input name="birthday"/><br/><br/> 年龄:<input name="age"/><br/><br/> <input type="submit" value="注册"/> </form>
二:多日期格式
1.因为并不是一种格式,所以我们可以把能进转换的格式提到一个类中
package cn.happy.controller; import java.sql.Date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.regex.Pattern; import org.springframework.beans.TypeMismatchException; import org.springframework.beans.propertyeditors.PropertiesEditor; public class MyDateEditor extends PropertiesEditor{ @Override public void setAsText(String source) throws IllegalArgumentException { SimpleDateFormat sdf=getDate(source); //做一个操作 try { setValue(sdf.parseObject(source)); } catch (ParseException e) { e.printStackTrace(); } } private SimpleDateFormat getDate(String source) { SimpleDateFormat sdf=null; if (Pattern.matches("^\\d{4}-\\d{2}-\\d{2}$", source)) { sdf=new SimpleDateFormat("yyyy-MM-dd"); }else if (Pattern.matches("^\\d{4}/\\d{2}/\\d{2}$", source)) { sdf=new SimpleDateFormat("yyyy/MM/dd"); }else if (Pattern.matches("^\\d{4}\\d{2}\\d{2}$", source)) { sdf=new SimpleDateFormat("yyyyMMdd"); }else { throw new TypeMismatchException("", Date.class); } return sdf; } }
2、还是用@initBinder 注解处理类型
package cn.happy.controller; import java.beans.PropertyEditor; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.beans.propertyeditors.PropertiesEditor; import org.springframework.stereotype.Controller; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class FirstController { /** * * @param binder */ @InitBinder public void initBinder(WebDataBinder binder){ binder.registerCustomEditor(Date.class,new MyDateEditor()); System.out.println("===============11111"); } @RequestMapping("/first.do") //类型转化工作一定是在真正的handler方法执行前执行的。 public String doFirst(Date birthday,int age) throws Exception{ System.out.println(birthday+"==============="); System.out.println(age+"==============="); return "/WELCOME.jsp"; } }
时间: 2024-11-15 00:06:45