我必须访问该迭代器内计算出的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}哪个更可读

其他提示

我建议创建自定义功能JSTL(检查例如),这样就可以省略小脚本。 因此,而不是丑陋

<%out.write( StringUtils.mask( (String)pageContext.getAttribute("currentCardNum") ) );%>

你会碰到这样的:

<c:out value="${fnPrefix:maskString(currentCardNum)}" />
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top