1

我在我的项目中使用spring 3.0.5RELEASE。现在我的要求是我想对表单进行验证。我是spring的新手,我不知道如何执行,我用谷歌搜索了它。然后我找到了使用休眠的解决方案- 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 字段并单击提交按钮。然后它不显示验证消息。我还需要做任何事情来显示消息。对不起我的英语不好。

4

2 回答 2

0

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

if(result.hasError()) {
// return the same view having the form.
} else {
// insert the data in database and return the success view.
}

我还建议您在此处显示您的控制器和 jsp 文件。

希望这对您有所帮助。干杯。

于 2012-06-12T06:11:01.113 回答
0

您必须做的几件事来验证您的表单
1. 使用@validJaps 提到的注释
2.<form:errors>在 JSP 上使用以显示错误。
例如,检查此链接

于 2012-06-12T06:31:53.773 回答