[Seasar-user:17576] Re: SAStruts でNestedのiterateタグの使用

Nishiwaki Kiyoyuki [E-MAIL ADDRESS DELETED]
2009年 6月 1日 (月) 18:02:31 JST


ひがさま

西腋です。

再度確認しましたところ
FormにDTO配列を持っている場合は、SP6のコードを適用することで正常に表示されま
した。
申し訳ありません。

先ほどの例外ですが、SP6のコードで例外が発生する条件が別途あり、
以下のようなForm、DTO、JSPになっている場合です。
先ほどの例外も、この条件下で発生していました。


FormがDTO1の配列を持っており、DTO1もDTO2の配列を持っているような
配列の中に配列がある場合です。

public class Sample4Form {
    private String selectedId;
    private List testDto41Array = new ArrayList();

    public TestDto41[] getTestDto41Array() {
        return (TestDto41[]) testDto41Array.toArray(new
TestDto41[testDto41Array.size()]);
    }

    public void setTestDto41Array(TestDto41[] values) {
        this.testDto41Array = Arrays.asList(values);
    }
}

public class TestDto41  implements Serializable{
    private List testDto42Array = new ArrayList();

    public TestDto42[] getTestDto42Array() {
        return (TestDto42[])testDto42Array.toArray(new
TestDto42[testDto42Array.size()]);
    }

    public void setTestDto42Array(TestDto42[] values) {
        this.testDto42Array = Arrays.asList(values);
    }
}

public class TestDto42  implements Serializable{
    private String text1;

    public String getText1() {
        return this.text1;
    }

    public void setText1(String text) {
        this.text1 = text;
    }
}


JSPは以下のようにiterateタグの中に再度iterateタグが存在しています。

  <n:iterate id="iterate1" property="testDto41Array">
    <tr>
      <td>
        <n:link action="/sample/sample4?SAStruts.method=execute1"
          paramId="selectedId" paramProperty="id">
          <n:hidden property="id" write="true"></n:hidden>
        </n:link>
      </td>
      <td>
        <table border="1">
          <n:iterate id="iterate2" property="testDto42Array">
            <tr>
              <td>
                <n:link action="/sample/sample4?SAStruts.method=execute1"
paramId="selectedId" paramProperty="write">
                <n:hidden property="write" write="true"></n:hidden>
                </n:link>
              </td>
              <td><n:text property="text1" styleId="table2Text1"></n:text>
              </td>
            </tr>
          </n:iterate>
        </table>
      </td>
    </tr>
  </n:iterate>



/************************************************************/
  (株)オージス総研
  技術部 エンタープライズ・オープンソース・センター
  西腋 清行
  mailto:[E-MAIL ADDRESS DELETED]
  Phone:03-5730-3221 / Ext:9-47-646
/************************************************************/

> -----Original Message-----
> From: [E-MAIL ADDRESS DELETED]
> [mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of Yasuo Higa
> Sent: Monday, June 01, 2009 4:46 PM
> To: [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:17573] Re: SAStruts でNestedのiterateタグの使用
>
> ひがです。
> > >
> > > 西腋です
> > >
> > BeanWrapperが動いているようなので、古いjarが残っている気がします。
>
> 状況がつかめました。
> リクエストの属性に設定されたActionFormを直接参照しているということですね。
> ActionFormのプロパティは、リクエストの属性にセットされているので、
> 直接ActionFormを見る必要はないと思うのですが、
> JSPでは、どのように記述しているのでしょうか。
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user



Seasar-user メーリングリストの案内