关联对象赋值
这是前端页面
我们可以创建delivery实体类来存放,收货人,联系电话,收货地址的值。
可以将Form实体类关联起来,并生成getter和setter方法
在form中需要申明是delivery的属性
在Controller中的代码为,输出收货人的名字。
日期类型转换
最重要的就是添加注解,这里是在实体类中添加@DateTimeFormat(patter=“yyyy-MM-dd”),也可以直接在接收方法里面添加
public String postMapping(String username,@DateTimeFormat(pattern="yyyy-MM-dd") Date createTime)
或者创建一个全局的转换器
我们需要开发一个转换器类,我们创建一个包converter,里面存放的都是转换器。我们在里面定义一个类为MyDateConverter日期转换器,代码如下:
import org.springframework.core.convert.converter.Converter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MyDateConverter implements Converter<String, Date> {
@Override
public Date convert(String s) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Date d = sdf.parse(s);
return d;
} catch (ParseException e) {
return null;
}
}
}
还需要在application.xml中配置
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.imooc.springmvc.converter.MyDateConverter"></bean>
</set>
</property>
</bean>
解决中文乱码问题
GEt请求乱码
在server.xml中增加URIEncoding属性
在tomcat安装目录里面的conf–>server.xml中,添加URIEncoding=“UTF-8”【tomcat8.0以后的版本可以不用添加,因为它默认就是UTF-8】
Post请求乱码
web.xml配置CharacterEncodingFilter
在web.xml中添加如下代码:
<filter>
<filter-name>characterFilter</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>characterFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Response响应乱码
Spring配置StringHttpMessageConverter
响应乱码
需要在application.xml中添加如下代码:
<!-- 启用spring MVC的注解开发模式-->
<mvc:annotation-driven conversion-service="conversionService">
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=utf-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>