首先写一个表单:
<form action="zy/add" method="post">
添加用户
姓名:<input name="name"/><br/>
年龄:<input name="age"/><br/>
性别:<input name="sex"/><br/>
地址:<input name="address"/><br/>
生日:<input name="birthday"/><br/>
<input type="submit"/>
</form>
在spring.xml中需要如下配置:
<!-- 扫面controller包 -->
<context:component-scan base-package="com.zy.controller"></context:component-scan>
<!-- 配置日期转换器 -->
<bean id="formattingConversion" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<list>
<!-- 配置自己的转换器 -->
<bean class="com.zy.converter.MyDateConverter"></bean>
</list>
</property>
</bean>
<!-- 引用上文的转换器 -->
<mvc:annotation-driven conversion-service="formattingConversion"></mvc:annotation-driven>
在web.xml中需要如下的配置:
<!-- 配置前端控制器 -->
<servlet>
<servlet-name>aaa</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 加载配置文件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value><!-- 配置文件的位置 -->
</init-param>
<load-on-startup>1</load-on-startup><!-- 加载时间,数字越小,加载越早 -->
</servlet>
<servlet-mapping>
<servlet-name>aaa</servlet-name>
<url-pattern>*.action</url-pattern><!-- 拦截规则 --><!-- 后缀拦截 拦截以action结尾的请求 -->
</servlet-mapping>
<!-- / /*, /*范围更广,包含jsp的拦截 -->
<filter>
<filter-name>bbb</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>bbb</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在controller中写如下方法:
@RequestMapping("/add")
public ModelAndView add(User uu) {
//该对象会自动接收表单中与属性名匹配的值 对象接收参数
System.out.println(uu);
return null;
}
日期转换类:
package com.zy.converter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.core.convert.converter.Converter;
//从字符串转日期
public class MyDateConverter implements Converter<String, Date>{
@Override
public Date convert(String value) { //参数就是传入的字符串日期
// 1999年6月6日 创建相对应的日期格式化对象
SimpleDateFormat simpleDateFormat = null;
/*String str = value.substring(4, 5);
switch (str) {
case "年":
simpleDateFormat = new SimpleDateFormat("yyyy年mm月dd日");
break;
case ".":
simpleDateFormat = new SimpleDateFormat("yyyy.mm.dd");
break;
case "-":
simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
break;
default:
simpleDateFormat = new SimpleDateFormat("yyyy/mm/dd");
break;
}*/
if (value.contains("年")) {
simpleDateFormat = new SimpleDateFormat("yyyy年mm月dd日");
}
else if (value.contains(".")) {
simpleDateFormat = new SimpleDateFormat("yyyy.mm.dd");
}
else if (value.contains("-")) {
simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
}
else if (value.contains("/")) {
simpleDateFormat = new SimpleDateFormat("yyyy/mm/dd");
}
//解析
try {
//把字符串解析成一个日期对象
Date parse = simpleDateFormat.parse(value);
//返回结果
return parse;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}