2013-07-29 44 views
5

Tôi quen với việc sử dụng các thẻ <form:errors> của Spring để hiển thị lỗi xác thực cho thuộc tính đối tượng, nhưng làm cách nào để hiển thị lỗi ở cấp lớp?Cách hiển thị lỗi biểu mẫu Spring MVC cho lỗi lớp

Dưới đây là một ví dụ về những gì tôi đang nói về:

@ScriptAssert(lang = "javascript", 
     script = "_this.isExistingEmployee == true || (_this.phoneNumber != null && _this.address != null)", 
     message = "New hires must enter contact information") 
public class JobApplicationForm { 

    @NotBlank(message = "First Name is required") 
    private String firstName; 

    @NotBlank(message = "Last Name is required") 
    private String lastName; 

    @NotNull(message = "Please specify whether you are an existing employee in another area") 
    private Boolean isExistingEmployee; 

    private String phoneNumber; 

    private String address; 
} 

@ScriptAssert đây chỉ xác nhận rằng nếu người nộp đơn đã chỉ ra rằng họ là một nhân viên hiện tại họ có thể bỏ qua thông tin liên hệ, nhưng nếu không họ phải nhập nó. Khi xác thực này không thành công, lỗi không nằm trên một trường đã cho mà đúng hơn là trên lớp.

Trong biểu mẫu, tôi có thể hiển thị lỗi trên trường có <form:errors path="firstName"> và tôi có thể hiển thị tất cả các lỗi (lớp và trường) cùng một lúc bằng cách sử dụng <form:errors path="*"> nhưng làm cách nào để tách biệt và hiển thị lỗi cấp lớp?

Trả lời

13

Để chỉ hiển thị lỗi cấp lớp, hãy để trống đường dẫn.

<form:errors path=""> 

từ các tài liệu Xuân:

  • path = "*" - hiển thị tất cả các lỗi
  • path = "lastName" - hiển thị tất cả các lỗi liên quan đến lĩnh vực lastName
  • nếu đường dẫn bị bỏ qua - lỗi đối tượng chỉ được hiển thị

ref: http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/view.html#view-jsp-formtaglib-errorstag

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