[Seasar-user:15857] Re: [Teeda]可変個数のアップロードについて

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2008年 9月 26日 (金) 21:00:41 JST


小林 (koichik) です.

Date:    Fri, 26 Sep 2008 19:22:17 +0900
From:    Tonomura-Akira <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:15854] [Teeda]可変個数のアップロードについて

> Teedaで用意されている UploadedFile型のプロパティを持つDtoを作成し
> そのDtoのlistをpageクラスに持つことで可変個数のアップロードを
> 実現しようとしています。
(中略)
> <tbody id="ichiranlistItems" >
> <tr>
> <th>ファイル1</th>
> <td class="input">
> <input type="file" id="uploadedFile" />
> </td>
> </tr>
> </tbody>

この HTML だと繰り返しの中のリクエストパラメータは
<input type="file"> の項目一つだけとなりますが,
この項目は通常のリクエストパラメータとは異った扱いを
されるため,HttpServletRequest#getParameterNames() で
取得することができません.

RequestDumpFilter でパラメータとして出力されて
いないことからそれを確認することができます.

そのため,forEach で繰り返しの数が 0 と判断されて
しまい,アップロードされたファイルを受け取ることも
できません.

回避策として,繰り返しの中に <input type="hidden"> を
含めてください.

> <td class="input">
> <input type="file" id="uploadedFile" />
  <input type="hidden" id="ichiranlistIndex" />
> </td>

public int ichiranlistIndex;

forEach の中にチェックボックスだけがある場合と
同じ対応になります.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



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