27

イテレータ内で計算される JSTL 変数にアクセスする必要があります。
コードの抜粋:

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

${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 で変数を設定している 3 行目をスキップしたいと思います。設定せずに同じ結果を達成することは可能ですか?または、私が使用できる他の方法はありますか?

4

2 に答える 2

19

次のことを試すことができます。

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

ところで - resultBean に別のメソッドを追加して、より読みやすいgetMaskedCardNum()ページに入れることができます。${resultBean.maskedCardNum}

于 2009-12-28T12:50:14.030 に答える
7

スクリプトレットを省略できるように、カスタム JSTL 関数を作成することをお勧めします (たとえば、これを確認してください)。だから醜いのではなく

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

次のようなものがあります。

<c:out value="${fnPrefix:maskString(currentCardNum)}" />
于 2009-12-28T13:40:16.880 に答える