1

こんにちは私のプロジェクトで、フォームを検証しようとしているときに、検証が失敗してもエラーメッセージが表示されません(フォームが送信されず、検証失敗ブロックに入ります)

これが私のコードです

      /****************** Post Method *************/
       @RequestMapping(value="/property", method = RequestMethod.POST)
        public String saveOrUpdateProperty(@ModelAttribute("property") Property property, 
                BindingResult result, 
                Model model, 
                HttpServletRequest request) throws Exception {
                try {
                        if(validateFormData(property, result)) {
                            model.addAttribute("property", new Property());
                            return "property/postProperty";


                }
}


/********* Validate Block *************/
    private boolean validateFormData(Property property, BindingResult result) throws DaoException {
    if (property.getPropertyType() == null || property.getPropertyType().equals("")) {
        result.rejectValue("propertyType", "Cannot Be Empty !", "Cannot Be Empty !");
    } 
    if (property.getTitle() == null || property.getTitle().equals("")) {
        result.rejectValue("title", "Cannot Be Empty !", "Cannot Be Empty !");
    }
    return (result.hasFieldErrors() || result.hasErrors());
}

しかし、デバッグすると、以下が表示されます

org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'property' on field 'title': rejected value [null]; codes [Cannot Be Empty !.property.title,Cannot Be Empty !.title,Cannot Be Empty !.java.lang.String,Cannot Be Empty !]; arguments []; default message [Cannot Be Empty !]

これが私がjspファイルに表示する方法です

<div class="control-group">
        <div class="controls">
        <label class="control-label"><span class="required">* </span>Property Type</label>
            <div class="controls">  
                <form:input path="title" placeholder="Pin Code" cssClass="form-control border-radius-4  textField"/>
                <form:errors path="title" style="color:red;"/>
            </div>
        </div>
    </div>

ただし、デバッグ時に以下のイベントが表示された場合 (1 エラーは正しい)

org.springframework.validation.BeanPropertyBindingResult: 1 errors

jspに表示されないのはなぜですか?

4

1 に答える 1

1

下の 2 行目でモデルを破棄し (検証エラーが含まれています)、新しいモデルを作成しているため、何も表示されないと思います。

    if(validateFormData(property, result)) {
     model.addAttribute("property", new Property());  // <------
     return "property/postProperty";

パラメーターとして入ってくるプロパティを表示してみてください。おそらく、検証エラーを確認できるでしょう。

    if(validateFormData(property, result)) {
     model.addAttribute("property", property);  
     return "property/postProperty";
于 2014-06-01T21:47:04.997 に答える