Struts2のiteratorタグの使い方

このQ&Aのポイント
  • Struts2のiteratorタグの使い方について詳しく教えてください。
  • JSPでのStruts2のiteratorタグの記述方法について教えてください。
  • ArrayListにStringが格納されている場合のStruts2のiteratorタグの記述方法について教えてください。
回答を見る
  • ベストアンサー

Struts2のiteratorタグの使い方

Struts2でiteratorタグを使用したいのですがJSPでの記述方法がわからず困っています。 アクションクラス、JSPでは以下のように記述しております。 検索するとActionクラス内でArrayListに独自のクラスが格納されている状態での記述方法 はサンプルとしてあったのですがArrayListにStringが格納されていた場合の記述方法に 関しての記載が見つかりませんでした。そのため現在、JSP側ではsession.getattribute()を 使用してしのいでいる次第です。 public ArrayList<String> getDatalist() { return this.datalist; } public void setDatalist(ArrayList<String> datalist) { this.datalist = datalist; } public String execute() { ArrayList<String> datalist = bdf.getDataList(); return "success";    } 以下、JSP側の記述 <s:iterator value="datalist"> ここの記述が不明 </s:iterator>

  • Java
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
noname#147388
noname#147388
回答No.1

検索してないよね。

参考URL:
http://www.techdoctranslator.com/struts2/tag-developers-guide/struts-tags/generic-tags/generic-tag-reference/iterator

関連するQ&A

  • struts2のiteratorについて

    sturuts2の画面表示値の取得について教えてください。 Action側でmap<String,List>で保持している変数を 画面上に表示することはできたのですが、 textfieldやラジオボタン、チェックボタンなどで入力された値を Action側で取得したい場合、どのような形でコーディングすれば取得できます? 例)以下の例ではAction側で取得できませんでした。。。 <s:iterator value="hogeMap" status="map"> <s:iterator value="hogeList" status="list"> <s:textfield name=hogeMap[key].hogeList[%(#list.index)].hogehoge value=""> </s:iterator> </s:iterator>

  • iteratorの再利用について

    コンテナの内容を変えた後に内容を変える前のiteratorを使用することはできないと聞きました。ので、連続して何らかのコンテナ内のデータを変更しつつ、探索する場合にも、iteratorは最初から探索を始めないといけないと思っています。 例えば以下のように #include <stdio.h> #include <list> struct data { int value; data(int value) {this->value = value;} }; typedef std::list<data> DataList; typedef std::list<data>::iterator DataIterator; bool EraseValue(DataList*dataList, int value) { DataIterator iterator= dataList->begin(); while(iterator != dataList->end()) { if(iterator->value == value) { dataList->erase(iterator); return true; } iterator++; } return false; } int main() { //データを入れる DataList dataList; for(int i=0;i<10; i++) dataList.push_back(data(i)); //指定のデータを探し、消す int Value[] = {4,5,7}; EraseValue(&dataList, Value[0]); EraseValue(&dataList, Value[1]); EraseValue(&dataList, Value[2]); //結果表示 DataIterator iterator = dataList.begin(); while(iterator != dataList.end()) { printf("%d\n",iterator->value); iterator++; } return 0; } ここで、新しい値の探索を始めるたびに、最初から探索をはじめる部分が無駄であると思っています。探索するデータは、上の例のように、必ず前回探したものの後にあることはわかっているとして、これより効率のよい方法はないでしょうか?自分の中での理想は、削除したiteratorの直前に使った(削除されていない)iteratorの位置から探索を始めるのがいい思っているのですが、これはどうやらできないこと(やってはいけないこと?)の様です。 コンテナをstd::listに限定した場合でも構いません。 ご教授よろしくお願いします。

  • JAVA言語 Iterator

    ■JAVAの課題をしています。 ArrayList lendList =(ArrayList)session.getAttribute("text"); Iterator it=lendList.iterator(); while(it.hasNext()){ Text text=(Text)it.next(); String mondai = text.getMondai(); String seikaiNo= text.getSeikaiNo(); ArrayList tlist = text.getTlist(); String kaisetu = text.getKaisetu(); } のMondai  SeikaiNo Tlist  Kaisetu の中にはそれぞれ文章が4つ入っています。 Iteratorでまわすと、全部でてしまうのですが、一つだけ取得するにはどうしたらよいでしょうか?

    • ベストアンサー
    • Java
  • Struts2についての質問

    Struts2についての質問 いつもお世話になっております。 <s:radio>のcheckedについて教えて頂ければと思います。 現在のradio部分のjspは <s:radio name="aaa.bbb"list="array" value="<s:property/>"/> と記述しております。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=48216&forum=12 こちらの質問と同じだと思い、value値に値を入れても変わらず・・・。 Actionのarrayは以下のように定義しております。 ArrayList<String> array = new ArrayList<String>(); array.add("こんにちは"); array.add("こんばんわ"); array.add("おはよう"); public ArrayList<String> getArray(){ retrun this.array; } 最初に表示されるラジオボタンにデフォルトでチェックをいれたいのですが どのように記述すればいいのでしょうか。 ご指摘頂ければ幸いです。 宜しくお願い致します。

  • Struts ArrayListデータの画面出力方法

    MySQLのテーブルデータを下記の様にActionとFormにコーディングして取得し、それをフォームに格納するところまでできました。 -----アクション(抜粋)----------------------------------- ArrayList tmpArrayList = new ArrayList(); int n=0; while(rs.next()){ tmpArrayList.add(rs.getString("id"));   n++; } aform.setIdall(tmpArrayList); -------------------------------------------------- -----フォーム(抜粋)----------------------------- private ArrayList idall; public ArrayList getIdall() { return idall; } public void setIdall(ArrayList idall) { this.idall=idall; } -------------------------------------------------- この後、idallに格納したデータをJSP画面に表示させるにはどうコーディングすればいいのでしょうか? JSPファイルに<logic:iterate>と<bean:write>を使って表示させたいのですが・・・。 ご指導のほどよろしくお願いいたします。

    • ベストアンサー
    • Java
  • Iteratorの使い方でこまっています。

    こんにちは、片岡と言います。 Iteratorの使い方で困っています。 次のプログラムで自分の望んだ結果と違う動作をします。 原因やもっと良い方法をご存知の方はいませんか。 私の行った手順は以下です。 (1)次のようなプログラムを作りました。 import java.util.ArrayList; import java.util.Iterator; public class Main { ArrayList list; public static void main(String[] args) { Main instance = new Main(); Iterator it = instance.getIterator(); for (int i = 0; i < 3; i++) { Iterator temp = it; //Iterator temp = instance.getIterator(); while (temp.hasNext()) { System.out.print(temp.next()); } System.out.println(""); } } public Main() { list = new ArrayList(); list.add("a"); list.add("b"); list.add("c"); } public Iterator getIterator() { return list.iterator(); } } (2)このプログラムを実行しました。 abc (3)しかし、私の望んだ実行結果は、次のようなものでした。 abc abc abc (4)プログラムを次のように変更しました。 Iterator temp = it; の行を Iterator temp = instance.getIterator(); に変更しました。 変更後は、私の望んだ実行結果になります。 なぜ、Iterator temp = it では駄目なのでしょうか。 また、何度もIteratorを生成すると、処理が重くなる気がします。 もっと良い方法はないのでしょうか。 ご存知の方はいらっしゃいませんか。 なお、私の環境は以下の通りです。 OS: Microsoft Windows XP Professional SP2 開発環境:Eclipse 3.2.2 java: java version "1.4.2_13"

    • ベストアンサー
    • Java
  • Iteratorの使用について

    いつもお世話になっています。 List使用時の、iterator方法について質問します。 Listに、以下の情報が入っている場合で、 UserFormBean userFormBean = new UserFormBean(); List array = new ArrayList(); array.add("ほのか"); array.add("なぎさ"); array.add("桃子"); array.add("雛菊"); array.add("百合"); array.add("陽介"); //ListにListを格納する List array2 = new ArrayList(); array2.add("酒蔵"); array.add(array2); //別クラスのデータをListに格納する userFormBean.setUserName("あかね"); userFormBean.setAge(15); /** UserFormBeanクラス **/ public class UserFormBean { private String userName; private int age; public String getUserName() { return this.userName; } public void setUserName(String userName) { this.userName = userName; } public int getAge() { return this.age; } public void setAge(int age) { this.age = age; } } このとき、文字列で入っている場合は、普通に取得できるが、 List毎入っている場合と別クラスが入っているうまく取得できません。 普通にfor()を使用すれば取得できるのですが、 このときiteratorを使用して取得することは可能なのでしょうか? また、一般的にこのような取得方法の場合、forとどちらを使用するべきなのでしょうか? 取得方法は以下です。 for(Iterator a = array.iterator(); a.hasNext();) { System.out.println("a="+a); System.out.println("value="+a.next() ); //このとき、a.next()から再度UserFormBeanクラスデータを取得したい } ◆取得結果 a=java.util.AbstractList$Itr@10b30a7 value=ほのか a=java.util.AbstractList$Itr@10b30a7 value=なぎさ a=java.util.AbstractList$Itr@10b30a7 value=桃子 a=java.util.AbstractList$Itr@10b30a7 value=雛菊 a=java.util.AbstractList$Itr@10b30a7 value=百合 a=java.util.AbstractList$Itr@10b30a7 value=陽介 a=java.util.AbstractList$Itr@10b30a7 value=[酒蔵] a=java.util.AbstractList$Itr@10b30a7 value=UserFormBean@1a758cb 宜しくお願いします。

    • ベストアンサー
    • Java
  • StrutsのiterateタグでListに格納されているBeanの要素を表示する方法

    タイトルのように Strutsのiterateタグを使用して、 ArrayListに格納されているBeanの要素を表示しようとしています。 具体的には public class Test { // 実際にはmainではないですが。 public static void main( String[] args ) { TestBean tbean = new TestBean( "あいうえお", "10" ); ListBean lbean = new ListBean(); lbean.setList( tbean ); } } public class TestBean { private String name; private String age; public TestBean( String name, String age ) { this.name = name; this.age = age; } } public class ListBean { private ArrayList list; public ListBean(){ } public void setList( TestBean bean ) { this.list.add( bean ); } public ArrayList getList() { return this.list; } } というような構成で、JSPでiterateタグを利用して、 listに入っているBeanから、更にnameとageを取得して 表示させたいのです。 ご回答お願いします。

  • サーブレットからArrayListにBeanを格納しJSPで使用する方法

    はじめまして、以下の問題ですが、わからず困っているので 質問させていただきます。 PCはWindowsXPで Eclipse Version: 3.4.1を使用し Tomcat5.5,jre6を使用しています。 研修の課題なのですが サーブレット内でBeanをArrayListを使って、動的確保したものを JSPに渡し、ArrayListに入ったBeanを取り出し、 そのBeanにsetした値を表示させるというプログラムを作っています。 JSPの部分がまったくわかりません。 JSPに配列はわたったようなのですが、JSPでのArrayListの取り出し方 などが、調べてもまったく解決しません。 もしわかる方がいましたら、教えてください。よろしくお願いします。 内容は以下です。 ///////////サーブレット//////////////////////////// ArrayList<Beans> beansid = new ArrayList<Beans>(); i=0; while(rs.next()){  sid = rs.getInt("sid");  sname = rs.getString("sname");  spass = rs.getString("spass");  Beans inbean = new Beans();  inbean.setsid(sid);  inbean.setsname(sname);  inbean.setspass(spass);  beansid.add(inbean); } request.setAttribute("beansid",beansid); //Beansクラス///////////////////// public class Beans{ private int sid; private String sname; private String spass; public int getsid(){ return sid; } public void setsid(int sid){ this.sid = sid; } public String getsname(){ return sname; } public void setsname(String sname){ this.sname = sname; } public String getspass(){ return spass; } public void setspass(String spass){ this.spass = spass; } } //JSPのコード///////////////////////////////// <%@page contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS" %> <jsp:useBean class="java.util.ArrayList" id="beansid2" scope="request"/> <jsp:useBean class="java.lang.String" id="beansid" scope="request"/> <%@page import="keiji.Beans"%> <%@page import= "java.util.*" %> <%@page import="java.sql.*"%> <%@page import="javax.servlet.*"%> <%--下のclassの所はBeansというのでも試してみました。--%> <jsp:useBean class="java.util.ArrayList" id="beansid2" scope="request"/> <%-- ArrayList beansid = (ArrayList)request.getAttribute("beansid"); --%> <%-- Iterator it = beansid.Iterator(); --%> ArrayList Iteratorと使ってみたのですが、 自分にはわけが分からず、JSPを実行したとき、処理がとまってしまいます。

  • Struts2のifタグについて

    いつもお世話になっております。 現在Struts2の学習を行っているのですが、 iteratorでlistの中のmapの値を取得しているのですが、 データを表示させるか判定に使用するifのタグの条件に propertyタグで取得した値を使用としたら、 正しく判定されませんでした。 どうしたらifタグのtest属性内でpropertyタグを使用できるでしょうか? <table> <s:iterator id="categoryList" value="categoryList" status="rowstatus" > <s:property value="CATEGORYNAME"/> <table border="3"> <s:iterator id="categoryTopicList" value="categoryTopicList" status="rowstatus" > <s:if test='<s:property value="TCID"/> == <s:property value="CATEGORYID"/>'> <tr> <td><s:property value="CATEGORYID" /></td> <td><s:property value="TCID" /></td> <td><s:property value="TOPICNAME" /></td> <td><s:property value="PROCEDURE"/></td> </tr> </s:if> </s:iterator> </table> </s:iterator> というようにjspは記述しています。 ifタグを使わずに表示させると値は取得されていたのでDBエラー等ではありませんでした。 使用しているstruts2のバージョンは2.0.14です。 ifタグにpropertyタグの値を条件として記述する方法を教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java