1

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

1 Answer 1

3

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");
    }
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.