简体   繁体   中英

Error message is not displayed in the Spring MVC validator

My code is as below, when I enter input field as wrong value then validator invalidates the input bean values, but in view error message is not displayed.

COntroller

@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");
    }
}

View

<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>

Bean

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 + '}';
    }
}

Change your controller method to the below, just added before @Valid :

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

The controller code goes here

@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");
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM