2015-05-18 20 views
15

Tôi có một ứng dụng Khởi động mùa xuân (sử dụng phiên bản 1.2.3) với 1 bộ điều khiển hiển thị biểu mẫu. Điều này tất cả hoạt động tốt, nhưng bây giờ tôi muốn thêm xác nhận. Tôi có phương pháp này trong điều khiển của tôi:Không thể xác thực khi làm việc với Spring Boot và Thymeleaf

@RequestMapping(value = "/licensing", method = RequestMethod.POST) 
public String doRegistration(@Valid CustomerLicenseRegistration customerLicenseRegistration, Model model, BindingResult bindingResult) 
{ 
    if(bindingResult.hasErrors()) 
    { 
     logger.debug("There are errors! {}", bindingResult); 
     return "customer/license-registration"; 
    } 
    logger.debug("customerLicenseRegistration: " + customerLicenseRegistration); 
    CustomerLicense customerLicense = m_licenseService.createCustomerLicense(customerLicenseRegistration); 
    model.addAttribute("customerLicense", customerLicense); 
    return "customer/license-registration-done"; 
} 

Nếu bây giờ tôi gõ một cái gì đó không hợp lệ, tôi nhận được "trang báo lỗi Nhãn trắng" sau khi nộp và breakpoint của tôi bên trong phương pháp này là không bao giờ nhấn (Nếu tôi loại bỏ các @Valid chú thích, các breakpoint không nhận được hit). Trang lỗi hiển thị:

Whitelabel Error Page 

This application has no explicit mapping for /error, so you are seeing this as a fallback. 

Mon May 18 09:42:27 CEST 2015 
There was an unexpected error (type=Bad Request, status=400). 
Validation failed for object='customerLicenseRegistration'. Error count: 1 

Mùa xuân dường như nhận thấy đối tượng không hợp lệ nhưng không hiển thị lại biểu mẫu để người dùng có thể sửa lỗi của mình. Tôi đang làm gì sai?

Trả lời

41

Tìm câu trả lời do the tutorial here. Tôi phải thay đổi phương pháp chữ ký của tôi từ:

public String doRegistration(@Valid CustomerLicenseRegistration customerLicenseRegistration, 
Model model, 
BindingResult bindingResult) 

tới:

public String doRegistration(@Valid CustomerLicenseRegistration customerLicenseRegistration, 
BindingResult bindingResult, 
Model model) 

Thông báo như thế nào BindingResult phải là ngay sau khi đối tượng tôi đã chú thích với @Valid.

+4

Cảm ơn bạn thân đã trả lời. Tôi đã bỏ ra hàng giờ để hiểu vấn đề là gì và nó đi kèm với chỉ là chữ ký chữ ký. Làm việc cho tôi. cảm ơn. :) – James

+0

Thx. Xin vui lòng upvote nếu bạn thích câu trả lời. –

+0

chắc chắn. Tôi chỉ quên mất hạnh phúc :) – James

Các vấn đề liên quan