SpringMVC中遇到的Http400 Bad Request

 

     一.前端提交的到后台的数据应该是json字符串类型,而前端没有将对象转化为字符串类型;

        解决方案:使用stringify将前端传递的对象转化为字符串    data: JSON.stringify(param)  ,后台的方法在返回值类型前没有加@RequestBody注解

     二.由于日期数据有很多种格式,springmvc没办法把字符串转换成日期类型

        解决方案: 1.在实体类的日期属性上加上注解@DateTimeFormat(pattern="yyyy-MM-dd"),另需注意是util包下的Date

                            2.自定参数绑定

                               1).自定义converter

package cn.test.converter;
//自定义的转换器需要 实现Converter接口
//S(source):源,被转换的数据类型,本例中是把字符串转日期类型,这里应该是String
//T(target):目标,需要转为成什么数据类型,本例中是把字符串转日期类型,这里目标是Date
public class DateConverter implements Converter<String, Date> {

	@Override
	public Date convert(String source) {
		// 创建转换的对象,yyyy-MM-dd HH:mm:ss
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

		try {
			// 执行字符串转日期
			Date date = sdf.parse(source);

			// 返回转换成功的日期
			return date;
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		// 如果有异常返回空
		return null;
	}

}

                                2).在springmvc.xml中配置Converter

<!-- 配置注解驱动 -->
<mvc:annotation-driven conversion-service="conversionService" />

<!-- 转换器配置 -->
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
	<property name="converters">
		<set>
			<bean class=" cn.test.converter.DateConverter" />
		</set>
	</property>
</bean>

 

                              

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值