我有一个使用 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/