【问题标题】:How to write <c:if> - jstl tag - comparing map key with struts formbean element如何编写 <c:if> - jstl 标记 - 将映射键与 struts formbean 元素进行比较
【发布时间】:2011-10-05 20:07:23
【问题描述】:

我需要根据条件从 JSP 中 Map&lt;String,List&lt;HashMap&lt;String, Object&gt;&gt;&gt; 类型的映射中检索列表值。条件是将map key与formbean变量进行比较。现在,我正在做多级迭代。首先,我正在迭代地图以检索键和内部迭代循环以检索列表值。

到目前为止,我都喜欢这个

<c:forEach items="${addRatingExceptionForm.ratingsMap}" var="entry"> 
  <c:set var="key" value="${entry.key}"/>
  <jsp:useBean id="key" type="java.lang.String" />
  <c:if test= '<%= key.equalsIgnoreCase(addRatingExceptionForm.getRatingElementDropdown()) %> ' >
    <c:forEach items="${entry.value}" var="item"> 
      <li>
        <input type="checkbox" id="addRatingException_timeline_earlyAsn" value="${item.RatingInstanceValue}"  class="ajaxContentTrigger  method_Load_exceptionType ajaxLoadingTrigger|addRatingException_exceptionType clearErrors"/>  
        <label for="addRatingException_timeline_earlyAsn">${item.RatingInstanceValue}</p></label>   
      </li>
    </c:forEach>
  </c:if>
</c:forEach> 

但它在&lt;c:if&gt; 标签上出错。

【问题讨论】:

  • 功能需求不理解。请详细说明功能要求和/或发布真实伪代码,而不是失败的代码尝试,因为这些尝试无助于理解您实际想要什么。
  • &lt;%=${entry.key}.equalsIgnoreCase(addRatingExceptionForm.getRatingElementDropdown()) %&gt; - 作为旁注:&lt;%=%&gt; 之间的脚本部分在 之前 执行像 ${entry.key} 这样的表达式,因此代码不能工作。
  • 我需要根据条件从 jsp 中 Map>> 类型的映射中检索列表值。条件是将map key与formbean变量进行比较。现在,我正在做多级迭代。首先,我正在迭代地图以检索键和内部迭代循环以检索列表值。
  • 这更清楚。将来,请直接在问题中提出这一点。我已经为你编辑好了。

标签: java jsp struts jstl


【解决方案1】:

您无需遍历地图即可比较键。您只需要使用大括号符号[] 来通过动态键获取映射值,例如${map[key]}

所以,应该这样做:

<c:forEach items="${addRatingExceptionForm.ratingsMap[addRatingExceptionForm.ratingElementDropdown]}" var="item"> 
  <li>
    <input type="checkbox" id="addRatingException_timeline_earlyAsn" value="${item.RatingInstanceValue}" class="ajaxContentTrigger method_Load_exceptionType ajaxLoadingTrigger|addRatingException_exceptionType clearErrors" />
    <label for="addRatingException_timeline_earlyAsn">${item.RatingInstanceValue}</p></label> <!-- wtf is that </p> doing there? -->
  </li>
</c:forEach>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多