大人になっても苦手な食べ物、ありますか?

タイトルのように
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を取得して
表示させたいのです。

ご回答お願いします。

A 回答 (2件)

設定したフォーム名とはActionFormのことでしょうが、まだ情報が足りません。


この例でいうと、

設定しフォーム名のActionFormに対して
getListを呼び出してそのListを繰り返します。
さらに、そのListから取り出したBeanに対して、getNameを呼んでそのListを繰り返して取得したBeanを出力します。

質問にあげられたTestBeanには、ゲッターメソッドがないので、nameやageを個別に取得することはできません。

何かの参考書をみてやられているのでしょうか?
いきなり難しいことに挑戦しないで、まずは基本的なサンプルの真似から初めて、仕組みを理解したほうが近道になると思います。

この回答への補足

お返事が遅れました。申し訳ありません。

という事は、TestBeanにゲッターを用意すれば
前の例のようにして出力できるのでしょうか。

参考書ではなくWEB上の情報を元に学習をしています。
iterateタグを利用してBeanの要素を表示させる方法については
WEBで探してはみたのですが、見つからなかったので、
こちらで質問をさせていただきました。

補足日時:2006/08/03 21:09
    • good
    • 0
この回答へのお礼

自己解決できましたのでご報告します。

iterateタグにtypeという属性がある事に気付きました。
typeにlistから取り出したBeanの型を指定する。
writeタグでは、取り出したBeanのフィールドを示すproperty属性に
nameを指定すれば、nameを出力させる事ができました。

何度もお答えいただいてありがとうございました。
そしてお騒がせ致しました。

お礼日時:2006/08/05 15:16

何の回答をしたらいいのでしょうか?


答えを教えろということでしょうか?

この回答への補足

言葉足らずで申し訳ありません。
表示させる方法を教えていただけたらと思います。

自分なりにiterateタグをネストして、

<logic:iterate name="設定したフォーム名" property="list" id="human">
 <logic:iterate name="human" property="name" id="name">
  <bean:write name="name"/>
  </logic:iterate>
</logic:iterate> 

のように考えてみたのですが、解決に到りませんでした。
(nameはコレクションでも配列でもないので当然と言えば当然なのですが)

改めてご回答宜しくお願い致します。

補足日時:2006/08/03 15:44
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報