[Seasar-user:2894] Re: s2struts1.2.0 でのファイルアップロードについて

永島 克彦 kanagashi
2005年 11月 22日 (火) 20:34:46 JST


永島です。

> さきほど別件で調べているとき、 indexつきのセッタを持つ ActionForm(Pojo
> ベース)が対応できないような感じを受けたのですが、これはInputValueForm
> とは関係なさそうでした。
> # たしか commons-beanutilsで hoge[1] hoge[2]は setHoge(1,"...") として
> # セッタが呼ばれるようにはなっていたかと思うのですが
> 
> BeanValidatorForm(とそのS2Strutsによる拡張)がらみのようで、PojoFormの
> interceptorが関係しているように見えた…ということまでしか見てません。
> また問題に出くわしたら調べてみます。

InputValueFormを利用するバージョンではご指摘の通りエラーとなりましたが、
InputValueFormを利用しないバージョン(アップロードができるバージョン)では、

Indexedプロパティが動作することを確認できました。

ただ、インデックスなしプロパティアクセスをきちんと作らないと
PropertyDescriptor#getPropertyType()がnullを返し
最終的にNullPointerExceptionとなるようです。

以下のようにインデックスなしプロパティアクセスを定義した場合、
Java 1.4.2_08、5.0U5とも正常に動作しました。
---
    public String[] getHoge() { ... }
    public String getHoge(int index) { ... }
    public void setHoge(int index, String value) { ... }
---

#Java 1.4.2_05で試したときはインデックスなしプロパティが
#なくてもうまくいったような気がしたのですが。。。
#今手元になくて確認できていません。。。勘違いかな。。。

Exampleに「Indexed Example」として
確認に利用したソースをSVNにアップしました。
詳細につきましては、このExampleを参照してください。

----
Katsuhiko Nagashima

_________________________________________________________________
MSN Hotmail が贈る Hot Xmas × VOGUE 
http://promotion.msn.co.jp/hotmail/xmas/index.html 素敵なクリスマスコフレを
プレゼント




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