我正在使用表单标记。
<form:form commandName="foo">
<div class="myclass ">
<label>Foo</label>
<form:input path="fooName"/>
</div>
<div class="controls">
<input type="submit" class="btn" value="Submit"/>
</div>
</form:form>
问题
有没有办法找出特定字段是否发生错误?
我知道<form:erros path="fooName"/>
,但这会打印出错误消息。我根据fooName
属性上是否发生错误而返回真或假的内容。我需要这个,因为如果错误发生,那么我可以在error
旁边插入css类my class
答案 0 :(得分:16)
是的,有可能:
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<form:form commandName="foo">
<spring:bind path="fooName">
<div class="myclass ${status.error ? 'error' : ''}">
<label>Foo</label>
<form:input path="fooName"/>
</div>
</spring:bind>
<div class="controls">
<input type="submit" class="btn" value="Submit"/>
</div>
</form:form>
将字段括在<spring:bind>
标记内时,您可以访问类型为BindStatus
的隐式变量status
。您可以使用它来检查该字段是否有错误。
您也可以找到有用的以下链接:
以下是使用<spring:hasBindErrors>
的另一种方法(在其内部,您可以访问类型为Errors
的errors
变量),该方法仅适用于 JSP 2.2 的环境:
<spring:hasBindErrors name="foo">
<div class="myclass ${errors.hasFieldErrors('fooName') ? 'error' : ''}">
<label>Foo</label>
<form:input path="fooName"/>
</div>
</spring:hasBindErrors>