我正在使用带有注释的Spring MVC。 我没有注册任何customDateEditory
在我的类中,我有一个类型为java.lang.Date的属性
我读到的是默认情况下未注册customDateEditor。但是当我提交带有空白日期的表单时,它会抛出illegalArgumentException
如果我输入日期然后提交则不会引发异常
之后我将BindingResult添加为控制器方法的参数,现在它接受空白值
我没有在控制器中添加任何启动器
控制器
@Controller("orderController")
@RequestMapping(value = "/admin")
public class OrderController extends BaseController {
@RequestMapping(value = "/viewOrders.htm", method = RequestMethod.GET)
public String viewOrders(@ModelAttribute("searchOrder") SearchOrder searchOrder,BindingResult bindingResult,Model model) {
List<Order> orders=orderService.getOrders(searchOrder);
model.addAttribute("orders", orders);
return "order/searchOrder";
}
}
Pojo包含日期字段
public class SearchOrder {
private Integer orderId;
private Long customerId;
private String customerPo;
private Date dateCreatedFrom;
private Date dateCreatedTo;
private Date dateUpdatedFrom;
private Date dateUpdatedTo;
public Integer getOrderId() {
return orderId;
}
public void setOrderId(Integer orderId) {
this.orderId = orderId;
}
public Long getCustomerId() {
return customerId;
}
public void setCustomerId(Long customerId) {
this.customerId = customerId;
}
public String getCustomerPo() {
return customerPo;
}
public void setCustomerPo(String customerPo) {
this.customerPo = customerPo;
}
public Date getDateCreatedFrom() {
return dateCreatedFrom;
}
public void setDateCreatedFrom(Date dateCreatedFrom) {
this.dateCreatedFrom = dateCreatedFrom;
}
public Date getDateCreatedTo() {
return dateCreatedTo;
}
public void setDateCreatedTo(Date dateCreatedTo) {
this.dateCreatedTo = dateCreatedTo;
}
public Date getDateUpdatedFrom() {
return dateUpdatedFrom;
}
public void setDateUpdatedFrom(Date dateUpdatedFrom) {
this.dateUpdatedFrom = dateUpdatedFrom;
}
public Date getDateUpdatedTo() {
return dateUpdatedTo;
}
public void setDateUpdatedTo(Date dateUpdatedTo) {
this.dateUpdatedTo = dateUpdatedTo;
}
@Override
public String toString() {
return "SearchOrder [orderId=" + orderId + ", customerId=" + customerId
+ ", customerPo=" + customerPo + ", dateCreatedFrom="
+ dateCreatedFrom + ", dateCreatedTo=" + dateCreatedTo
+ ", dateUpdatedFrom=" + dateUpdatedFrom + ", dateUpdatedTo="
+ dateUpdatedTo + "]";
}
}
请轻轻一点
答案 0 :(得分:1)
当您添加BindingResult
时,此绑定结果包含有关不起作用的绑定和验证的信息。
您可以使用BindingResult.hasErrors()
检查绑定结果是否包含有关“问题”的信息。
如果你没有BindingResult
方法参数,那么如果存在绑定错误,Spring会自动抛出异常。
添加
for(ObjectError objectError : bindingResult.getAllErrors()) {
Sysout.println("error: " + objectError);
}
获取有关绑定错误的一些信息
(顺便说一句:方法参数顺序很重要:BindingResult
参数必须是应该使用此BindingResult
检查的Command对象之后的下一个参数