【SpringMVC】数据类型转换以及Spring编码过滤器
来源:互联网 发布:淘宝分店怎么开 编辑:程序博客网 时间:2024/06/10 19:23
当我们提交表单时,需要使用日期时,SpringMVC能否直接将Sring类型转换为Date类型呢?
答案是不能的,所以我们需要去实现类型转换
首先我们创建index.jsp写好表单
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>表单提交</title> </head> <body> <form action="${pageContext.request.contextPath}/add.action" method="POST"><table border="2" align="center"><tr><th>姓名</th><td><input type="text" name="username"/></td></tr><tr><th>性别</th><td><input type="radio" name="gender" value="男"/>男<input type="radio" name="gender" value="女" checked/>女</td></tr><tr><th>入职时间</th><td><input type="text" name="hiredate" value="2017-11-25"/></td></tr><tr><td colspan="2" align="center"><input type="submit" value="提交"/></td></tr></table></form> </body></html>
配置好web.xml,在这配置两个,一个注册SpringMVC核心控制器,另一个设置Spring编码过滤器
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"><!-- 注册SpringMVC框架核心控制器 --><servlet><!-- 默认去WEB-INF下面找DispatcherServlet-servlet.xml文件 --><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 通知DispatcherServlet去指定的目录下加载springmvc.xml配置文件 --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>*.action</url-pattern></servlet-mapping><!-- 设置SpringMVC编码过滤器 --><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>
然后在springmvc-test3.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-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd "><!-- 注册Action --><bean name="/add.action" class="cn.qblank.date.EmpAction"></bean> <!-- 映射器 --><bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean> </beans>
然后写好对应的EmpAction类继承AbstractCommandController
@SuppressWarnings("deprecation")public class EmpAction extends AbstractCommandController{//org.springframework.web.servlet.mvc.AbstractCommandController能够以实体的形式,收集客户端参数public EmpAction(){//将表单参数封装进去this.setCommandClass(Emp.class);}/** * 自定义类型转换器,将String->Date类型(格式yyyy-MM-dd) */@Overrideprotected void initBinder(HttpServletRequest request,ServletRequestDataBinder binder) throws Exception {//向springmvc内部注入一个自定义的类型转换器//参数一:将String转成什么类型的字节码//参数二:自定义转换规则//true表示该日期字段可以为空binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true));}/** * obj表示封装后的实体 * error表示封装时产生的异常 */@Overrideprotected ModelAndView handle(HttpServletRequest request,HttpServletResponse response, Object obj, BindException error)throws Exception {ModelAndView modelAndView = new ModelAndView();modelAndView.addObject("message","添加成功");Emp emp = (Emp) obj;System.out.println(emp.getUsername()+":" + emp.getGender()+":" + emp.getHiredate().toLocaleString());//将对象封转到ModelAndView中modelAndView.addObject("emp",emp);//设置跳转页面modelAndView.setViewName("/jsp/success.jsp");return modelAndView;}}
然后在success.jsp中显示表单数据
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib prefix="f" uri="http://java.sun.com/jsp/jstl/fmt" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>成功页面</title> </head> <body> <h3>成功</h3> ${message} ${emp.username} ${emp.gender} <!-- 1)fmt:formatDate 来源于 http://java.sun.com/jsp/jstl/fmt2)fmt:formatDate作用是格式化日期的显示,例如:2015年5月10日 星期日3)value表示需要格式化的值4)type表示显示日期,时间,都显示 type=date表示只显示日期 type=time表示只显示时间 type=both表示日期时间均显示5)dateStyle表示显示日期的格式:short/medium/default/long/full--> <f:formatDate value="${emp.hiredate}" type="date" dateStyle="full" /> </body></html>
最后注意在主文件springmvc.xml中引入子文件
<import resource="cn/qblank/date/springmvc-test3.xml"/>
结果如下:
阅读全文
1 0
- 【SpringMVC】数据类型转换以及Spring编码过滤器
- Spring编码转换过滤器解决乱码
- Spring MVC学习(七)-------SpringMVC数据类型转换
- Spring MVC学习(七)-------SpringMVC数据类型转换
- 编码转换过滤器
- spring 编码过滤器
- spring编码过滤器配置
- spring 编码过滤器
- spring设置编码过滤器
- spring编码过滤器配置
- spring编码过滤器 配置
- springMVC-笔记009-编码过滤器
- SpringMVC数据类型转换
- SpringMVC数据类型转换
- 过滤器Filter--编码转换案例
- 设置spring字符编码过滤器
- 设置spring字符编码过滤器
- Spring中的字符编码过滤器
- 折半查找算法(开始序列有序)
- KMP算法
- 【从无到有】雄关漫道真如铁,而今迈步从头越
- 动态内存
- CodeForces
- 【SpringMVC】数据类型转换以及Spring编码过滤器
- 前端学习_06.Script语法基础
- 算法进阶3-5
- 文本处理大杀器——sed
- 子线程中调用UpdateData(TRUE/FALSE)出现异常解决方法
- 浏览器工作原理(初步接触)
- 代码大全第二部分 (包含第四章)
- 欢迎使用CSDN-markdown编辑器
- printf函数的实现