我有一个自定义参数转换器&杰克逊映射器来处理弹簧控制器输入乔达DateTime
。可选Joda DateTime类型字段与JSR 303验证和弹簧转换器
问题是,如果日期格式不正确,那么服务器会给出400 Bad Request
,因为转换期间由Joda格式器引发的IllegalArgumentException
。
我可以让转换器返回的失败转化为空(用户输入错误的日期模式),但是这会给我空在两种情况下:
- 用户离开领域的空白(这是确定的可选字段)不正确的格式
- 用户提供的日期(永远OK)
如何区分那些scenerios到“允许空(空场),但如果不为空,检查日期格式”?
背景:字段在POJO表示为DateTime
和在@Controller
接收作为@RequestBody @Valid
因为...它AJAX的张贴。
形式POJO:
class MyForm {
@NotEmpty
private String name;
private DateTime expireOn; // JODA, optional but won't bad-format as null.
// getters, setters
}
请发布您的POJO – 2014-10-08 12:49:40
@Amrola添加表格POJO – 2014-10-08 12:58:21
您是否也使用hibernate验证? – 2014-10-08 13:00:32