2017-02-16 14 views
-1
<td th:if="${#fields.hasErrors('description')}" th:errors="*{description}" class="red">You must provide a reason for your request.</td> 
<td th:if="${#fields.hasErrors('selectedDate')}" th:errors="*{selectedDate}" class="red">You must select a date.</td> 

爲什麼這些td被以下消息填充,而不是上面提供的消息?他們也不接受我提供的CSS課程。表單驗證錯誤消息沒有按預期的方式出現

may not be empty may not be empty 

請求實體:

public class RequestModel { 

    private Long requestId; 

    @NotNull 
    @NotBlank 
    private String selectedDate; 

    private RequestStatus requestStatus; 

    @NotNull 
    @NotBlank 
    private String description; 

    private Boolean hasForced; 

    public String getSelectedDate() { 
     return selectedDate; 
    } 

    public void setSelectedDate(String selectedDate) { 
     this.selectedDate = selectedDate; 
    } 

    public Long getRequestId() { 
     return requestId; 
    } 

    public void setRequestId(Long requestId) { 
     this.requestId = requestId; 
    } 

    public RequestStatus getRequestStatus() { 
     return requestStatus; 
    } 

    public void setRequestStatus(RequestStatus requestStatus) { 
     this.requestStatus = requestStatus; 
    } 

    public String getDescription() { 
     return description; 
    } 

    public void setDescription(String description) { 
     this.description = description; 
    } 

    public Boolean getHasForced() { 
     return hasForced; 
    } 

    public void setHasForced(Boolean hasForced) { 
     this.hasForced = hasForced; 
    } 
} 

控制器:

@RequestMapping(value = "/save", method = RequestMethod.POST) 
String saveRequest(Principal principal, @Valid @ModelAttribute(value = "requestModel") RequestModel requestModel, BindingResult bindingResult, RedirectAttributes redirectAttributes) { 

     if (bindingResult.hasErrors()) { 
      // log.info("There are binding errors."); 
      return "send"; 
     } 
    ... 
    } 

完整的HTML表單:

<form role="form" th:action="@{/request/save}" th:object="${requestModel}" method="post"> 
    <input type="checkbox" th:field="*{hasForced}" th:checked="${false}" style="display: none;"/>   
    <p><input id="description" class="descriptionField" type="text" th:field="*{description}" 
       placeholder="Please provide a reason for your request" 
       style="width: 500px; border-radius: 4px; padding: 11px 11px 11px 11px;"/></p> 
    <input id="embeddedDateField" class="dateField" placeholder="YYYY-MM-DD" type="text" th:field="*{selectedDate}" readonly 
      style="border-radius: 4px; background: #eefdff; text-align: center;"/><br> 
    <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> 
    <div style="margin: 5px; width: 200px;"><input type="submit" value="Submit Request" 
                style="display: block;"></div> 
    <td th:if="${#fields.hasErrors('description')}" th:errors="*{description}" class="red">You must provide a reason for your request.</td> 
    <td th:if="${#fields.hasErrors('selectedDate')}" th:errors="*{selectedDate}" class="ed">You must select a date.</td> 
</form> 

這是怎麼回事?

回答

1

這些消息來自驗證註釋默認值。要設置你自己,你需要像下面那樣提供它們,或者你可以使用MessageSource從屬性文件進行更改。

@NotNull(message="You must select a date.") 
@NotBlank(message="You must select a date.") 
private String selectedDate; 
+0

非常酷。謝謝。有沒有什麼辦法來定製的CSS? – santafebound

+0

我用一個字體標籤圍繞着'td'本身使它變成了紅色:''

日期錯誤

''。 – santafebound

相關問題