1. 配置编码过滤器
1, web.xml中设置配置spring mvc提供的编码过滤器,解决get/post提交过来的数据乱码问题
<!--配置编码过滤器--><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>
2. 获取请求参数,参数绑定注解
http://127.0.0.1:8080/spring_mvc_01/user/save13?name=123
/*** 利用name来映射username* required false 可不提供参数,否则400* @param username*/@RequestMapping(value = "/save13")@ResponseBodypublic void save13(@RequestParam(value = "name", defaultValue = "bitqian", required = false) String username) {System.out.println(username);}
3. 获得请求参数,自定义类型转换器
实现步骤:
1. 定义转换器类实现converter接口
2. 在配置文件中声明转换器
3. 在,<annotation-driven>中引用转换器
1,自定义日期转换器
package com.bitqian.convertor;import org.springframework.core.convert.converter.Converter;import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;/*** 自定义日期转换器* @author echo lovely* @date 2020/9/2 22:01*/
public class DateConverter implements Converter<String, Date> {@Overridepublic Date convert(String s) {List<DateFormat> dateList = new ArrayList<>();dateList.add(new SimpleDateFormat("yyyy-MM-dd"));dateList.add(new SimpleDateFormat("yyyy/MM/dd"));dateList.add(new SimpleDateFormat("yyyy.MM.dd"));Date date = null;for (int i = 0; i < dateList.size(); i++) {try {// 支持 -- // ..日期格式的转换date = dateList.get(i).parse(s);return date;} catch (ParseException e) {// e.printStackTrace();continue;}}return null;}public static void main(String[] args) {DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");try {Date date = dateFormat.parse("2020/4/4");System.out.println(date);} catch (ParseException e) {e.printStackTrace();}}
}
2,spring mvc配置
<mvc:annotation-driven conversion-service="conversionServiceFactoryBean"/><!--日期转换器--><bean id="conversionServiceFactoryBean"class="org.springframework.context.support.ConversionServiceFactoryBean"><property name="converters"><list><bean class="com.bitqian.convertor.DateConverter"></bean></list></property></bean>
3,测试日期转换器
/*** 测试日期转换器*/@RequestMapping(value = "/save14")@ResponseBodypublic void save14(Date date) {System.out.println(date);}