如何在不使用表单taglib的情况下访问JSP中的Spring 3 MVCvalidation器结果

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

User Name

所以在第一行,class属性有两个类“control-group”和“error”。 我只需要在该字段有与之关联的错误时添加错误类。 我知道WebDataBinder以某种方式包含在页面中,但我不知道如何访问它。 基本上我只是想执行一些好的旧时尚,但如何访问页面中的活页夹?

您是否尝试过标签(我不明白您的意思是“不使用表单taglib”)?

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

评论后编辑:

标记内部,存在绑定到实际绑定错误的errors变量(请参阅Errors接口 )。 您可以通过errors.hasFieldErrors(fieldName)检查字段是否有错误。


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

虽然这有点模糊,但我觉得它更简单,因为它是一条单行,如果我只是像任何理智的Java开发人员那样使用scriplet就应该如此。 Taglib需要死死模具,然后再死一些。 它们太可怕了,我无法相信Java开发人员仍然认为他们确实有所帮助,而不是浪费我们的全部时间。 当我们使用这些东西时,PHP开发人员会嘲笑我们

 

有一种更好的方法来获取错误消息

  ${errors.hasFieldErrors('userId') ? errors.getFieldError('userId').defaultMessage : ''}  

还有一个class轮

  ${requestScope['org.springframework.validation.BindingResult.user'].hasFieldErrors('emailId') ? requestScope['org.springframework.validation.BindingResult.user'].getFieldError('emailId').defaultMessage : ''}