JSTL <c:if>标记用于比较两个变量

时间:2018-01-27 20:03:08

标签: jstl

为什么块永远不会达到“conditionTrue”?我打印了两个变量 authorEmail和scase.authorEmail和它们是相同的字符串。如果我使用像'abc@yahoo.com'这样的文字来测试条件,那么它是有效的,但如果c:if params都是变量则不然。

<c:forEach var="scase" items="${section.subSectionList.get(0).SCaseList}">

  <c:set var="authorEmail" >
      <sec:authentication property="principal.email" /> 
  </c:set>

  <c:if test = "${authorEmail == scase.authorEmail}" >
    <option>conditionTrue</option>
  </c:if>                                       

</c:forEach>  

更新 - 我通过进行这些更改让它发挥作用。

我注释掉了整个c:set标签。相反,我添加了这些行 -

<sec:authentication var="principal" property="principal" />

我的测试条件是:

 <c:if test = "${principal.email == scase.authorEmail}" >
     <option>conditionTrue</option>
  </c:if>  

这很有效。然而,它背后的推理仍然让我感到困惑。任何见解,非常感谢。

0 个答案:

没有答案