如何使用注释执行服务器端验证

时间:2012-06-12 05:58:38

标签: spring hibernate

我在我的项目中使用spring 3.0.5RELEASE。现在我的要求是我要执行验证以形成。我是春天的新手,我不知道如何执行,我用google搜索它。然后我发现解决方案为使用hibernate-validator.jar我们可以实现它。每当我将数据输入表格中数据保存在一个名为SampleCommand的实体类中,并且在这个类中我有5个字段。首先,我试图在一个字段上应用验证。所以我已经给出了

@NotNull(message = "The above field must not be blank.")
    private Integer sourceId;

以下是控制器类代码

public ModelAndView processForm(@ModelAttribute("reports") @Valid ReportsCommand model, ModelAndView modelAndView,BindingResult result,
            HttpServletRequest request, HttpServletResponse response) throws Exception {


        if (result.hasErrors()) {
           return new ModelAndView(new RedirectView("../pages/report/main.jsp"));
        } 
        else{
           ....
          }

以下是仅适用于该字段的jsp代码。

<form id="report-generate-form" method="post" action="../../reports/html" target="newWindow">
<div class="form-row" style="">
                        <div class="label"><%=Msg.get(MsgEnum.SOURCE_CONFIG_NAME_LABEL)%><em>*</em>
                        </div>
                        <div class="form-row">

                            <select name="sourceId" id="source-dropdown" class="input-field-select mandatory constrained"

                            <select name="sourceName" id="source-dropdown"
                                class="input-field-select mandatory constrained"

                                constraints='{"fieldLabel":"Source Name","mustSelect":"true"}'>
                                <option value="-1">Select</option>
                            </select>
                        </div>
                        <div class="error-container">
                            <div class="error-img"></div>
                            <label class="error"></label>
                        </div>
                        <form:errors path="sourceId" cssClass="error" />
                    </div>
</form>

如果我使用这样的应用程序运行没有任何例外但是当我填写表单时我错过了sourceId字段并单击提交按钮。然后它没有显示验证消息。任何更多的东西我必须要显示信息。请为我的英语不好。

2 个答案:

答案 0 :(得分:0)

在您的控制器中,处理表单发布方法的方法必须在标记为 @ModelAttribute 的字段上具有 @Valid 注释,并且该方法必须具有参数{{1然后你应该检查下面的if条件。

BindingResult result

我还建议你在这里显示你的控制器和jsp文件。

希望这会对你有所帮助。欢呼声。

答案 1 :(得分:0)

验证表单必须做的事情很少 1.使用@valid注释作为Japs提到的 2.在JSP上使用<form:errors>来显示错误 例如,请检查此link