簡體   English   中英

綁定CustomDateEditor spring Mvc

[英]Binding CustomDateEditor spring Mvc

我正在使用帶有注釋的Spring MVC。 我尚未注冊任何customDateEditory

在“我的班級”中,我有一個類型為java.lang.Date的屬性。

我讀到的是customDateEditor默認情況下未注冊。 但是,當我用空白日期提交表單時,它會拋出非法的ArgumentException

如果我輸入日期然后提交,則不會引發異常

之后,我將BindingResult作為參數添加到控制器方法,現在它接受空白值

我尚未向控制器添加任何initbinder

控制者

   @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 + "]";
    } 


 }

請給點燈

當您添加BindingResult ,此綁定結果將包含有關綁定和驗證無效的信息。 您可以使用BindingResult.hasErrors()來檢查綁定結果是否包含有關“問題”的信息。

如果您沒有BindingResult方法參數,那么如果存在綁定錯誤,Spring會自動拋出異常。

 for(ObjectError objectError : bindingResult.getAllErrors()) {
       Sysout.println("error: " + objectError);
 }

獲取有關綁定錯誤的一些信息


(順便說一句:方法參數的順序很重要: BindingResult參數必須是應使用此BindingResult檢查的Command對象之后的下一個參數)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM