【问题标题】:How do I combine spring errors tag logic with jstl logic如何将 spring 错误标签逻辑与 jstl 逻辑结合起来
【发布时间】:2011-04-21 22:14:52
【问题描述】:

我有以下 div 用于显示我的春季消息。 errorContainer DIV 和 errText UL 包含显示错误图标和格式化错误消息文本的类。

<c:if test="${not empty modelAttr}">
  <spring:hasBindErrors name="${modelAttr}">
    <div class="errorContainer">
      <ul class="errText">
        <form:errors path="*" element="li" delimiter=</li><li>" />
      </ul>
    </div>
  </spring:hasBindErrors>
</c:if>

我还想为我的 jquery 错误消息使用 errorContainer(或重复的 div)。我需要弄清楚如何重写之前的 jstl 和 spring 标记逻辑,以便仅当上面的 c:if 和 spring:hasBindErrors 标记一起评估为 false 时才在页面上放置另一个 div。我需要将我的条件基于这两个标签的结果,而不是将我的新 div 放在其中。

【问题讨论】:

    标签: html spring jsp jstl el


    【解决方案1】:

    您可以在 jstl 标记中添加另一个条件来检查您的条件何时满足吗?

    <c:choose>
        <c:when test="${not empty modelAttr}">   <%-- evaulates to true --%>
          <spring:hasBindErrors name="${modelAttr}">
            <div class="errorContainer">
              <ul class="errText">
                 <form:errors path="*" element="li" delimiter=</li><li>" />
              </ul>
            </div>
          </spring:hasBindErrors>
        </c:when>
        <c:otherwise> <%-- evaulates to false --%>
            Your spring test in here
        </c:otherwise>
    </c:choose>
    

    【讨论】:

    • 这个解决方案只会评估第一个条件,并且只有当modelAttr对象不为空并且modelAttr hasBindErrors = true时才会在逻辑上起作用。当 modelAttr 不为空但 modelAttr hasBindErrors = false 时,它​​不会正确评估,因为它会跳过“否则”。我最终在两个条件中使用了一个带有布尔变量的 c:set,然后将该布尔值用作第二部分逻辑的条件。
    猜你喜欢
    • 2011-06-19
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多