题
我必须访问该迭代器内计算出的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)}" />
不隶属于 StackOverflow