質問

Iterator内で計算される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行目をスキップしたいと思います。設定せずに同じ結果を達成することは可能ですか?それとも、私が使用できる他の方法がありますか?

役に立ちましたか?

解決

以下を試すことができます。

<%
  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