配列やコレクションの繰り返し処理をする<logic:iterate>

 配列やコレクションの繰り返し処理をするには、<logic:iterate>タグを使用します。

<html:iterater>タグの主要属性
属性概要
idJSP内で使用する変数名を指定します。
collectionスクリプトレットで指定された値を指定します。
nameスコープに登録されているBean名を指定します
property出力対象のBeanのプロパティを指定します。
scopename属性で指定したオブジェクトを取り出すscopeを指定します。指定しない場合、pege、request、session、spplicationの順で検索します。
indexId現在のindex番号を格納する変数を指定します。
length最大の繰り返し数を指定します。※1
offset繰り返し処理を開始するindex番号を指定します。省略時はゼロ※1
※1 最大繰り返し数と開始index番号の指定の実装例はこちらを参照して下さい。


例1)JSP内でスクリプトレットで生成した配列を出力する

<%@ page pageEncoding = "Shift_JIS" %>
<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>

<%
String[] strArray = {"str1","str2","str3"};
%>

<html><body>

●JSP内で生成したString型の配列を表示する。<br>
<logic:iterate id="data" collection="<%= strArray %>" indexId="idx" >
   <bean:write name="idx" />  : <bean:write name="data" /> <br>
</logic:iterate>
</logic:iterate>
<hr>

</body></html>

String配列が、スクリプトレットで指定されているので、collection属性を使用している。
インデックス番号を表す変数に"idx"を指定している。

画面イメージ






スポンサード リンク



例2)セッションに格納された配列、List、Mapオブジェクトを出力する

<%@ page pageEncoding = "Shift_JIS" %>
<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>

<html><body>

●String型の配列を表示する<br>
<logic:iterate id="data" name="strData" >
  <bean:write name="data" /> <br>
</logic:iterate>
<hr>

●List型の配列を表示する<br>
<logic:iterate id="data" name="listData" >
  <bean:write name="data" /> <br>
</logic:iterate>
<hr>

●Map型のKeyとvalueをそれぞれ表示する<br>
<logic:iterate id="data" name="mapData" >
  <bean:write name="data" property="key" />
    : 
  <bean:write name="data" property="value" /> <br>
</logic:iterate>

</body></html>

配列、コレクションが直接セッションに格納してあるので、property属性は指定していない。
Map、<bean:write>タグのproperty属性に、key、valueを指定することでそれぞれ、keyと値が出力される。

画面イメージ





配列、コレクションのセッション格納処理抜粋(アクションクラス)

public ActionForward execute(ActionMapping mapping,
                   ActionForm form,
                   HttpServletRequest request,
                   HttpServletResponse response) {

  // 配列データをセッションに登録
  String[] str = {"str1","str2","str3"};
  request.setAttribute("strData", str);

  // Listデータをセッションに登録
  List<String> list = new ArrayList<String>();
  list.add("list1");
  list.add("list2");
  list.add("list3");
  request.setAttribute("listData", list);

  // Mapデータをセッションに登録
  Map<String,String> map = new   LinkedHashMap<String,String>(); 
  map.put("key1", "map1");
  map.put("key2", "map2");
  map.put("key3", "map3");
  request.setAttribute("mapData", map);

  return mapping.findForward("success");
}




例3)セッションに格納された、Baen内の配列、List、Mapオブジェクトを出力する

<%@ page pageEncoding = "Shift_JIS" %>
<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>

<html><body>

●Bean内のString型の配列を表示する<br>
<logic:iterate id="data" name="IterateForm" property="stringForm" >
  <bean:write name="data" /> <br>
</logic:iterate>
<hr>

●Bean内のList型の配列を表示する<br>
<logic:iterate id="data" name="IterateForm" property="listForm" >
  <bean:write name="data" /> <br>
</logic:iterate>
<hr>

●Bean内のMap型のKeyとvalueをそれぞれ表示する<br>
<logic:iterate id="data" name="IterateForm" property="mapForm" >
  <bean:write name="data" property="key" />
     : 
  <bean:write name="data" property="value" /> <br>
</logic:iterate>

</body></html>

配列、コレクションが直接セッションに格納してあるので、property属性は指定していない。
Map、<bean:write>タグのproperty属性に、key、valueを指定することでそれぞれ、keyと値が出力される。

画面イメージ




Beanのセッション格納処理抜粋(アクションクラス)

public ActionForward execute(ActionMapping mapping,
                   ActionForm form,
                   HttpServletRequest request,
                   HttpServletResponse response) {

   // 配列データを登録
  String[] str = {"str1","str2","str3"};

   // Listデータを登録
  List<String> list = new ArrayList<String>();
  list.add("list1");
  list.add("list2");
  list.add("list3");

  // Mapデータを登録
  Map<String,String> map = new   LinkedHashMap<String,String>(); 
  map.put("key1", "map1");
  map.put("key2", "map2");
  map.put("key3", "map3");

  // 配列、コレクションデータをアクションフォームに設定
  DynaActionForm inform = (DynaActionForm)form;
  inform.set("mapForm", map);
  inform.set("listForm", list);
  inform.set("stringForm",str);

   return mapping.findForward("success");
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值