• Type: Bug
    • Resolution: Fixed
    • Priority: Major
    • 1.0.11
    • Affects Version/s: 1.0.10
    • Component/s: Teeda HTML Example
    • None

      切り出すのが難しかったので、teeda-html-exampleを基にして再現させてみました。

      なぜかteeda-html-example-1.0.8では(JavaScriptが)うまく動作しなかった
      のでteeda 1.0.11-RC1のteeda-html-exampleで再現させました。

      foreach/forEachResult.htmlのformにenctype="multipart/form-data"を記述しただけで
      clickedIndexに画面内で最大の値(5)しか渡らなくなるのが確認できます。
      これはこのサンプルにきちんとファイルアップロードを実装しても同様の動作をします。

          [TEEDA-365] マルチパートのフォームでリクエストパラメータの値が Page クラスにバインドされない問題を修正しました.

          koichik added a comment -

          対応しました.
          http://svn.seasar.org/browse/?view=rev&root=teeda&revision=3583

          teeda-html-extension の web.xml にはフィルタが次の並びで定義されていました.

          1. dbSessionFilter
          2. encodingfilter
          3. s2filter
          4. hotdeployfilter
          5. extensionfilter
          6. requestDumpFilter
          7. tomahawkFilter

          リクエストパラメータを Page クラスにバインドするのは Seasar2 の外部バインディングで行われますが,Seasar2 が認識する ServletRequest は s2filter によって設定されるものです.
          しかし,その時点では tomahawkFilter は動いていないため,マルチパートのフォームだとリクエストパラメータを取得することができません.

          そこで,tomahawkFilter を s2filter の前に移動すると,マルチパートのフォームを解析した
          結果をリクエストパラメータとして取得することができる MultipartRequestWrapper が s2filter に渡るので,S2 の外部バインディングでマルチパートのフォームでもリクエストパラメータを DI できるようになります.

          そこで,フィルタの並びを次ように変更しました.

          1. extensionfilter
          2. dbSessionFilter
          3. encodingfilter
          4. tomahawkFilter
          5. s2filter
          6. hotdeployfilter
          7. requestDumpFilter

          koichik added a comment - 対応しました. http://svn.seasar.org/browse/?view=rev&root=teeda&revision=3583 teeda-html-extension の web.xml にはフィルタが次の並びで定義されていました. dbSessionFilter encodingfilter s2filter hotdeployfilter extensionfilter requestDumpFilter tomahawkFilter リクエストパラメータを Page クラスにバインドするのは Seasar2 の外部バインディングで行われますが,Seasar2 が認識する ServletRequest は s2filter によって設定されるものです. しかし,その時点では tomahawkFilter は動いていないため,マルチパートのフォームだとリクエストパラメータを取得することができません. そこで,tomahawkFilter を s2filter の前に移動すると,マルチパートのフォームを解析した 結果をリクエストパラメータとして取得することができる MultipartRequestWrapper が s2filter に渡るので,S2 の外部バインディングでマルチパートのフォームでもリクエストパラメータを DI できるようになります. そこで,フィルタの並びを次ように変更しました. extensionfilter dbSessionFilter encodingfilter tomahawkFilter s2filter hotdeployfilter requestDumpFilter

            Assignee:
            koichik
            Reporter:
            shot
            Votes:
            0 Vote for this issue
            Watchers:
            Start watching this issue

              Created:
              Updated:
              Resolved: