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

Yasuo Higa [E-MAIL ADDRESS DELETED]
2009年 6月 1日 (月) 18:25:29 JST


ひがです。
> 
> 西腋です。
> 
> 再度確認しましたところ
> FormにDTO配列を持っている場合は、SP6のコードを適用することで正常に表示されま
> した。
> 申し訳ありません。
> 
> 先ほどの例外ですが、SP6のコードで例外が発生する条件が別途あり、
> 以下のようなForm、DTO、JSPになっている場合です。
> 先ほどの例外も、この条件下で発生していました。
> 
下記のケースでは、SAStrutsのWrapperでは対応できません。
TestDto41がDynaBeanをimplementsするようにすれば大丈夫だと思います。
> 
> 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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 


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