【问题标题】:Error message is not displayed in the Spring MVC validatorSpring MVC 验证器中不显示错误消息
【发布时间】:2014-10-17 09:07:36
【问题描述】:

我的代码如下,当我将输入字段输入为错误值时,验证器会使输入的 bean 值无效,但在视图中不显示错误消息。

控制器

@RequestMapping(value = "/AddInventory.html", method = RequestMethod.POST)
public ModelAndView inventorymgmt(@Valid Itemtype itemTypeForm, BindingResult result, Map<String, Object> model) throws Exception {
    logger.log(Level.OFF, "Add Inventory called with inventory details ####### ." + itemTypeForm);

    if (result.hasErrors()) {
        logger.log(Level.OFF, "Error occured while inserting the reconrd for the item type." + result.getAllErrors());
        ModelAndView modelAndView = new ModelAndView("add-item_category");
        modelAndView.addAllObjects(model);
        return modelAndView;
    }
    else {
        logger.log(Level.OFF, "Insert result ####### ." + itemTypeDAO.insert(itemTypeForm));
        return new ModelAndView("redirect://item_category.html");
    }
}

查看

<form:form action="AddInventory.html" method="POST" commandName="itemTypeForm">
    <form:errors path="*" cssClass="errorblock" element="div" />
    <div class="col-md-9">
        <div class="catagory-main-box top-radius">
            <div class="cat-box-title cat-title-font top-radius">Item Category </div>

            <div class="row tb-margin">
                <div class="col-sm-2"></div>
                <div class="col-sm-8 visible-lg visible-md visible-sm">

                    <div class="form-group">
                        <label class="col-sm-4 col-xs-12 control-label search-text">Name:</label>
                        <div class="col-sm-8 col-xs-12">
                            <form:input  type="text" class="form-control" path="name" placeholder="Name"/>
                            <form:errors path="name" cssClass="error" />
                        </div>
                    </div>

                    <div class="form-group">
                        <label class="col-sm-4 col-xs-12 control-label search-text"> Description:</label>
                        <div class="col-sm-8 col-xs-12">
                            <form:input  type="text" class="form-control" path="description" placeholder="Description"/>
                            <form:errors path="description" cssClass="error" />
                        </div>
                    </div>
                </div>

                <div class="col-sm-8 visible-xs">
                    <div class="form-group">
                        <div class="col-sm-8 col-xs-12">
                            <form:input  type="text" class="form-control" path="name" placeholder="Name"/>
                            <form:errors path="name" cssClass="error" />
                        </div>
                    </div>

                    <div class="form-group">
                        <div class="col-sm-8 col-xs-12">
                            <form:input  type="text" class="form-control" path="description" placeholder="Description"/>
                        </div>
                    </div>
                </div>

                <div class="col-sm-2"></div>
            </div>

            <div class="row text-pad-top visible-lg visible-md visible-sm">
                <div class="div-center">
                    <button type="button" class="btn btn-orange" onclick="submitDetailsForm();">Save</button>
                    <button type="button" class="btn btn-orange" onclick="javascript:history.back();">Cancel</button>
                </div>
            </div>

            <div class="row text-pad-top visible-xs ">
                <div class="div-center-xs">
                    <button type="button" class="btn btn-orange" onclick="submitDetailsForm();">Save</button>
                    <button type="button" class="btn btn-orange" onclick="javascript:history.back();">Cancel</button>
                </div>
            </div>
        </div>
    </div>
</form:form>

豆子

package com.tss.ocean.pojo;
// Generated 4 Aug, 2014 6:30:10 PM by Hibernate Tools 3.2.1.GA

import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.NotEmpty;

/**
 * Itemtype generated by hbm2java
 *
 * @author Bhavik Ambani
 */
public class Itemtype implements java.io.Serializable {

    private Integer id;

    @NotEmpty(message = "Please enter item name.")
    @Size(min = 10, max = 45, message = "Item name must between 1 and 45 characters")
    private String name;

    @Size(min = 0, max = 45, message = "Item description must between 0 and 65535 characters")
    private String description;

    public Itemtype() {
    }

    public Itemtype(String name, String description) {
        this.name = name;
        this.description = description;
    }

    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return this.description;
    }

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

    @Override
    public String toString() {
        return "Itemtype{" + "id=" + id + ", name=" + name + ", description=" + description + '}';
    }
}

【问题讨论】:

    标签: java spring hibernate validation error-handling


    【解决方案1】:

    将你的控制器方法改成下面,刚刚在@Valid之前添加:

    @ModelAttribute("itemTypeForm") // Pass your Model Attribute here. I assumed it to be `itemTypeForm`.
    

    控制器代码放在这里

    @RequestMapping(value = "/AddInventory.html", method = RequestMethod.POST)
    public ModelAndView inventorymgmt(@ModelAttribute("itemTypeForm") @Valid Itemtype itemTypeForm, BindingResult result, Map<String, Object> model) throws Exception {
        logger.log(Level.OFF, "Add Inventory called with inventory details ####### ." + itemTypeForm);
    
        if (result.hasErrors()) {
            logger.log(Level.OFF, "Error occured while inserting the reconrd for the item type." + result.getAllErrors());
            ModelAndView modelAndView = new ModelAndView("add-item_category");
            modelAndView.addAllObjects(model);
            return modelAndView;
        }
        else {
            logger.log(Level.OFF, "Insert result ####### ." + itemTypeDAO.insert(itemTypeForm));
            return new ModelAndView("redirect://item_category.html");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多