SpringMVC Date Bad request 解决办法
2016-11-22 10:08
274 查看
这段时间,在写一个简单的StringMVC中Controller 遇到一个这样的问题。
Controller类参数对象中,有一个属性是Date格式的,前台传值时,总是报HTTP 400 的错。
最后的解决思路是在spring-mvc.xml 中加入配置
问题解决。
再加入一个转换
final class StringToEnumConverterFactory implements ConverterFactory<String, Enum> {
public <T extends Enum> Converter<String, T> getConverter(Class<T> targetType) {
return new StringToEnum(targetType);
}
private class StringToEnum<T extends Enum> implements Converter<String, T> {
private final Class<T> enumType;
public StringToEnum(Class<T> enumType) {
this.enumType = enumType;
}
public T convert(String source) {
if (source.length() == 0) {
// It's an empty enum identifier: reset the enum value to null.
return null;
}
return (T) Enum.valueOf(this.enumType, source.trim());
}
}
}
Controller类参数对象中,有一个属性是Date格式的,前台传值时,总是报HTTP 400 的错。
最后的解决思路是在spring-mvc.xml 中加入配置
<mvc:annotation-driven conversion-service="conversionService"/> <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <set> <bean class="org.springframework.core.convert.support.StringToBooleanConverter"></bean> <bean class="com.*.*.converters.StringToEnumConverterFactory" /> </set> </property> <property name="formatters"> <set> <bean class="com.*.*.converters.DateFormatter"></bean> </set> </property> </bean>
public class DateFormatter implements Formatter<Date> { public String print(Date object, Locale locale) { return null; } public Date parse(String text, Locale locale) throws ParseException { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = null; try { date = format.parse(text); } catch (Exception e) { format = new SimpleDateFormat("yyyy-MM-dd"); date = format.parse(text); } return date; } }
问题解决。
再加入一个转换
final class StringToEnumConverterFactory implements ConverterFactory<String, Enum> {
public <T extends Enum> Converter<String, T> getConverter(Class<T> targetType) {
return new StringToEnum(targetType);
}
private class StringToEnum<T extends Enum> implements Converter<String, T> {
private final Class<T> enumType;
public StringToEnum(Class<T> enumType) {
this.enumType = enumType;
}
public T convert(String source) {
if (source.length() == 0) {
// It's an empty enum identifier: reset the enum value to null.
return null;
}
return (T) Enum.valueOf(this.enumType, source.trim());
}
}
}
相关文章推荐
- SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC 出现"The request sent by the client was syntactically incorrect ()"解决办法
- win8“400 bad request”能登QQ,无法上网解决办法d
- SpringMVC-使用converter转换器解决后台接收Date格式数据时The request sent by the client was syntactically incorrect ()
- yii2.0 ajax post 提交 400(BadRequest) 解决办法
- Android studio出现Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Request"的解决办法
- SpringMVC出现no mapping found for http request的解决办法
- JQuery中Ajax的Post提交中文乱码、windows.location.href 中文汉字乱码和springmvc使用原生态HttpServletRequest接收参数中文乱码解决办法
- Android Studio出现Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Request"的解决办法
- SpringMVC 400 Bad Request 问题解决
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- 关于springMVC 接收date 类型为空时候的异常解决办法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC 400 Bad Request 错误解决
- springMVC日期转换及The request sent by the client was syntactically incorrect.解决办法
- pb开发的程序win10 报 sql server request resulted in a bad return code or status 的解决办法
- Android studio出现Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Request"的解决办法