java - 如何在不使用表单标签库的情况下访问 JSP 中的 Spring 3 MVC validator 结果

标签 java jsp data-binding spring-mvc

我有一个使用 jsp 标签库的简单 Spring 3 MVC 表单。我需要根据表单中的字段是否有任何与之关联的错误来添加一个类。这是我的 HTML 片段:

<div class="control-group error"> <!-- HERE: binding.hasErrors() ? "error" : "" -->
    <form:label path="username" cssClass="control-label">User Name</form:label>
    <div class="controls">
        <form:input path="username" cssClass="span3"/>
        <form:errors path="username" cssClass="help-inline" />
    </div>
</div>

所以在第一行,类属性有两个类“control-group”和“error”。仅当该字段有与之关联的错误时,我才需要添加错误类。我知道 WebDataBinder 以某种方式包含在页面中,但我不知道如何访问它。本质上我只是想执行一些好的旧时尚 <%= binding.hasError() ? "error": ""%>,但如何访问页面中的 Binder ?

最佳答案

你试过了吗 <spring:hasBindErrors> 标签(我不明白你写“不使用 form taglib”是什么意思)?

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

<spring:hasBindErrors name="yourCommandName">
  <c:if test="${errors.hasFieldErrors('username')}">
    <c:set var="errorClass" value="error" />
  </c:if>
</spring:hasBindErrors>

<div class="control-group <c:out value='${errorClass}' />">

评论后编辑:

内部<spring:hasBindErrors>标签有 errors变量(参见 Errors interface)绑定(bind)到实际的绑定(bind)错误。您可以通过 errors.hasFieldErrors(fieldName) 检查字段是否有错误.


在没有任何标签的情况下获取字段错误的真正晦涩的方法是 requestScope['org.springframework.validation.BindingResult.yourCommandName'].hasFieldErrors('username') ...

关于java - 如何在不使用表单标签库的情况下访问 JSP 中的 Spring 3 MVC validator 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12204649/

相关文章:

wpf - MVVM-如何绑定(bind)到不是 DependancyProperty 的属性?

c# - 如何从 xaml 中引用 .resx 文件中的图标?

java - java中从URL解析XML

java - ViewResolver 不解析 View 名称,而是请求 URL,Spring 3.0

html - 如何在 Spring <form :input> tag on jsp page 中使用占位符 HTML

java - 如何通过session获取id

javascript - 在angularJS中加载页面时隐藏数据绑定(bind)

java - Java 中的素数生成线程打印两次

java - 如何设置android :angle property of GradientDrawable programmatically?

java - 使用 for 循环创建圣诞树