spring mvc 数据转换
项目目录结构
User.java
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package org.mythsky.springmvcdemo.model; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; public class User implements Serializable { private String loginname; private Date birthday; public User() { super(); } public String getLoginname() { return loginname; } public void setLoginname(String loginname) { this.loginname = loginname; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
DateEditor.java
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package org.mythsky.springmvcdemo.converter; import java.beans.PropertyEditorSupport; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateEditor extends PropertyEditorSupport { public void setAsText(String text) throws java.lang.IllegalArgumentException { try{ SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd"); Date date=dateFormat.parse(text); setValue(date); } catch (ParseException e) { e.printStackTrace(); } } }
UserController.java
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package org.mythsky.springmvcdemo.controller; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.mythsky.springmvcdemo.converter.DateEditor; import org.mythsky.springmvcdemo.model.User; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.*; import java.util.Date; @Controller public class UserController { private static final Log logger= LogFactory.getLog(UserController.class); @InitBinder public void initBinder(WebDataBinder binder){ binder.registerCustomEditor(Date.class,new DateEditor()); } @RequestMapping(value = "/{formName}") public String loginForm(@PathVariable String formName){ return formName; } @RequestMapping(value = "/register",method = RequestMethod.POST) public String register(@ModelAttribute User user,Model model){ logger.info(user); model.addAttribute("user",user); return "success"; } }
registerForm.jsp
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<%-- Created by IntelliJ IDEA. User: mythsky Date: 2017/11/21 Time: 22:31 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>注册</title> </head> <body> <h3>注册页面</h3> <form action="register" method="post"> <table> <tr> <td><label>登录名:</label></td> <td><input type="text" id="loginname" name="loginname"></td> </tr> <tr> <td><label>生日:</label></td> <td><input type="text" id="birthday" name="birthday"></td> </tr> <tr><td><input type="submit" value="登录"></td></tr> </table> </form> </body> </html>
success.jsp
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<%-- Created by IntelliJ IDEA. User: mythsky Date: 2017/11/21 Time: 22:39 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>登录成功</title> </head> <body> 登录名:${requestScope.user.loginname}<br> 生日:${requestScope.user.birthday}<br> </body> </html>
web.xml
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/services.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
services.xml
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<?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:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p" 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/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <context:component-scan base-package="org.mythsky.springmvcdemo"></context:component-scan> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans>
pom.xml
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.0.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.0.1.RELEASE</version> </dependency> </dependencies>
运行结果