0

我已经在 Spring MVC 应用程序中正确设置了 Hibernate Validator。bean 已验证,但我无法显示错误。

在我的 JSP 页面中,我有以下行:

<sf:errors path="*" cssClass="errors" element="div" />

当我运行页面并使用 chrome 的检查器检查它时,没有 div (或任何)元素来保存这些错误。它完全被忽略了。这很奇怪,因为以下行在同一个 JSP 中被正确解析为 html 表单:

<sf:form method="post" modelAttribute="tsCommand">

这是我用于弹簧形式的 taglib:

<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form"%>

任何想法可能出了什么问题?

4

1 回答 1

1

您的语法是正确的,我不确定 "element=\"div\"" 属性。

您的控制器必须看起来像这样:

public void handleActionRequestInternal(@ModelAttribute("tsCommand") @Valid TsCommand tsCommand, BindingResult result, @ModelAttribute ModelMap model) throws Exception {

和你的背景:

<bean id="annotationMethodHandlerAdapter"
    class="org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="webBindingInitializer">
        <bean id="configurableWebBindingInitializer"
            class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
            <property name="validator">
                <ref bean="validator" />
            </property>
        </bean>
    </property>
</bean>
<bean id="validator"
    class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />

有了这个,一切都会好的;)

于 2012-06-11T11:07:39.993 回答