我正在使用基于注释的验证,但对于其中一种表单,我无法使用form:errors标记显示任何错误.当我调试方法时,我可以看到BindingResult有错误,但由于某种原因它没有显示在窗体上.我很困难,因为我已经把它用于其他形式,但由于某种原因,这种特殊形式存在问题.任何指针都非常感谢.
这是来自控制器的一些代码,我在控制器中也有copyCartForm作为@SessionAttribute:
@RequestMapping(params="action=Confirm Copy", method=RequestMethod.POST)
public String copyCart(@Valid CopyCart copyCartForm, BindingResult result) {
    if (result.hasErrors()) {
        logger.debug("errors in form" + result.toString());
        return "copyshoppingcart";
    } else {
                    ...
                    ...
        return "redirect:/home";
    }
}
在JSP中我试过这个:
<form:errors path="*" cssClass="formError"/>
以及:
<form:errors path="fieldName" cssClass="formError"/>
两者都不起作用.
Spring MVC错误消息
你好,春天研究员,
我有一个表单,一旦提交就通过Spring Validation验证.如果验证失败,表单上的每个字段可能包含多个错误消息,因此错误消息显示在字段下方,而不是旁边.这是代码片段.
<tr>
    <td><form:input path="name" /></td>
</tr>
<tr>
    <td>
        <form:errors path="name*" />
    </td>
</tr>
请注意,路径值末尾有一个星号表示name必须显示所有错误消息.
正如您所看到的,问题是,如果没有错误消息,页面上将有一个额外的行,对用户来说不合适.上面的代码是一个过于简单的版本,所以实际的代码中有更多的东西,这阻止我<form:errors>在包含字段的标记内移动标记.
有没有办法找出JSP级别上是否有与给定路径关联的消息?基本上,我想做以下事情:
<c:if test="${what do I write here?}">
    <tr>
        <td>
            <form:errors path="name*" />
        </td>
    </tr>
</c:if>
谢谢!