我必须访问在迭代器内部计算的JSTL变量。
代码摘录:

<c:forEach var="resultBean" items="${resultList}" varStatus="status">
   card: ${resultBean.cardNum}
</c:forEach>

我想在scriptlet代码中访问${resultBean.cardNum}。我现在正在做的是:
<c:forEach var="resultBean" items="${resultList}" varStatus="status">
   card: ${resultBean.cardNum}
   <c:set var="currentCardNum">${resultBean.cardNum}</c:set>
   <%out.write( StringUtils.mask( (String)pageContext.getAttribute("currentCardNum") ) );%>
</c:forEach>

我想跳过在pageContext中设置变量的第三行。不设置就可以达到相同的结果吗?还是我可以使用其他方法?

最佳答案

您可以尝试以下操作:

<%
  ResultBean resultBean = (ResultBean) pageContext.getAttribute("resultBean");
  out.write( StringUtils.mask( resultBean.getCardNum() ) );
%>

顺便说一句-您可以在resultBean中添加另一种方法-getMaskedCardNum(),然后只需将页面${resultBean.maskedCardNum}放在可读性更高的位置即可。

09-27 09:56