Rak*_*yal 27 java jsp jstl scriptlet
我必须访问在迭代器中计算的JSTL变量.
代码摘录:
<c:forEach var="resultBean" items="${resultList}" varStatus="status">
card: ${resultBean.cardNum}
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
我想访问${resultBean.cardNum}
scriptlet代码.我现在正在做的是:
<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>
Run Code Online (Sandbox Code Playgroud)
我想跳过第3行,我在pageContext中设置变量.没有设置它可以实现相同的结果吗?或者我可以使用其他方式吗?
Dav*_*itz 19
您可以尝试以下方法:
<%
ResultBean resultBean = (ResultBean) pageContext.getAttribute("resultBean");
out.write( StringUtils.mask( resultBean.getCardNum() ) );
%>
Run Code Online (Sandbox Code Playgroud)
BTW - 您可以向resultBean添加另一个方法 - getMaskedCardNum()
然后只需放入${resultBean.maskedCardNum}
更易读的页面.
我建议创建一个自定义JSTL函数(例如检查这个),这样就可以省略scriptlet.而不是丑陋
<%out.write( StringUtils.mask( (String)pageContext.getAttribute("currentCardNum") ) );%>
Run Code Online (Sandbox Code Playgroud)
你会有类似的东西:
<c:out value="${fnPrefix:maskString(currentCardNum)}" />
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
42458 次 |
最近记录: |