【问题标题】:Unable to compare map.key with string in jsp/jstl [duplicate]无法将 map.key 与 jsp/jstl 中的字符串进行比较 [重复]
【发布时间】:2020-10-03 18:25:26
【问题描述】:

我正在研究 jsp,并面临一些与语法相关的问题(这就是我认为的问题)。所以,我的jsp代码有一个map,它通过ModelAndView作为Map推送到jsp。在jsp中,我想将map.key与字符串进行比较,如果相等,则显示,否则跳过该map.key并继续其他人。

代码sn-p:

<c:forEach items = "${maker_model.kycPoiRejectionCodeMap}" var = "reasonEntry" >
   <c:if test= "${reasonEntry.key eq 'stringToCompare'}">
      //Show reasonEntry.value this if reasonEntry.key is 'stringToCompare'
   </c:if>
   <c:otherwise>
     //else this
    </c:otherwise>
 </c:forEach>

&lt;c:if test= "${reasonEntry.key eq 'stringToCompare'}"&gt; 不工作。我试过&lt;c:if test= "${reasonEntry.key == 'stringToCompare'}"&gt;,但也没有用。

我已经解决了这个问题:compare-map-keys-with-some-element-and-based-on-the-result-show-its-valueshash-map-key-check-in-jstl 但在解决方案中他们已经删除了比较本身,在第二个中,我按照建议做的事情。我还搜索了其他问题,但没有找到任何线索。

可能有用:可能有用:reasonEntry.key 中的值是从 enum::name(Enum.java 的 name() 方法)中提取的。

谁能告诉我如何解决这个问题?

【问题讨论】:

  • 你确定reasonEntry.keyString的类型吗?
  • 你试过&lt;c:if test=${hmap.containsKey('stringToCompare')}&gt;吗?

标签: java jsp jstl string-comparison jsp-tags


【解决方案1】:

您可以使用&lt;c:set...&gt;stringToCompare 的值设置为一个变量,并将map.key 与您刚刚设置的新变量进行比较。 或者我认为问题在于 map.Key 没有返回任何我遇到过这种问题的东西,也许你应该调用 getter 来获得你提到的 map.Name() 的价值。 我猜它可能有效。

【讨论】:

    【解决方案2】:

    我在这里猜测,如果这不起作用,请告诉我,我将删除我的答案。但是在这行代码中:

    <c:forEach items = "${maker_model.kycPoiRejectionCodeMap}" var = "reasonEntry">
    

    相信forEach 将返回您的Mapvalues(),而不是我认为您想要的entrySet()。因此,您可以通过将此行更改为:

    <c:forEach items = "${maker_model.kycPoiRejectionCodeMap.entrySet}" var = "reasonEntry">
    

    编辑:显然forEach应该返回entrySet(),但看看显式调用entrySet()是否能解决问题仍然很有趣。

    【讨论】:

    • I believe the forEach will return values() of your Map as opposed to the entrySet() - 这是错误的。如果maker_model.kycPoiRejectionCodeMapMap,则每次迭代都会将Entry 放入reasonEntry
    • @ArvindKumarAvinash 谢谢,我会在评论中添加一个编辑。看看是否明确使用entrySet() 可以解决问题会很有趣。
    【解决方案3】:

    我发布了问题,我发现了问题,它是“我正在使用 IF 和 OTHERWISE”。这是我面临的语法问题。正确的语法是

    <c:choose> 
       <c:when>  
       </c:when> 
       <c:otherwise> 
       </c:otherwise> 
    </c:choose>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-10
      • 2013-07-28
      • 1970-01-01
      • 2011-10-19
      • 2012-11-27
      • 2020-06-08
      • 2014-11-08
      • 2016-07-08
      相关资源
      最近更新 更多