Spring 3.2 MVC - 验证错误没有出现

时间:2013-04-17 21:04:33

标签: spring-mvc spring-validator

我正在尝试为我的Spring表单运行一个验证器类,但我的错误没有显示在我的页面上。在Spring验证方面,我是新手,所以这里肯定存在一些错误。这是我的表格。 (顺便说一句,Eclipse在form:error行上发布警告,说明“List是原始类型。应该参数化泛型类型列表。”)

<form:form commandName="bulletin" method="post" action="processBulletin">
    <table>
        <tr>
            <td>Name:</td>
            <td><form:errors path="name" /></td>
            <td><form:input path="name" maxlength="30" /></td>
        </tr>
        <tr>
            <td>Subject:</td>
            <td><form:errors path="subject" /></td>
            <td><form:input path="subject" maxlength="50" /></td>
        </tr>
        <tr>
            <td valign="top">Message:</td>
            <td><form:errors path="note" /></td>
            <td><form:textarea path="note" cols="70" rows="20" /></td>
        </tr>
        <tr>
            <td><input type="submit" /></td>
            <td>&nbsp;</td>
        </tr>
    </table>
</form:form>

这是我的控制器类。我从这里开始调用验证课程,我不确定这是否正确,所以如果不是这样的话,请随意这样说。

@RequestMapping(value = "/processBulletin", method = RequestMethod.POST)
public String processBulletin(
        @ModelAttribute("bulletin") Bulletin bulletin, BindingResult result) {
    final BindException errors = new BindException(bulletin, "bulletin");

    bulletinValidator.validate(bulletin, errors);
    if (errors.hasErrors()) {
        return "redirect:/approvedBulletins";
    } else {
        // rest of method
    }

    return "redirect:/approvedBulletins";
}

这是我的验证课程。

    @Override
    public boolean supports(Class<?> cls) {
        return Bulletin.class.isAssignableFrom(cls);
    }

    @Override
    public void validate(Object target, Errors errors) {
        ValidationUtils.rejectIfEmptyOrWhitespace(errors, "subject", "Subject is required");
        ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name", "Name is required");
        ValidationUtils.rejectIfEmptyOrWhitespace(errors, "note", "Message is required");
    }
}

1 个答案:

答案 0 :(得分:0)

如果您遇到错误,请尝试返回view name,而不是重定向return "redirect:/approvedBulletins";