S2Struts

backport175.Required

チェックボックス等で配列のプロパティを使用している場合に、Requiredを指定してもValidationの対象にならない。当然クライアントサイドJavaScriptが生成されない…これは仕様?またプリミティブ型の配列の場合、ClassCastExceptionが出る… java.lang.ClassC…

Mask:制御文字のエスケープ

たとえば、アップロードされたファイルの拡張子を正規表現でチェックする場合に、 /** * @org.seasar.struts.validator.annotation.backport175.Mask(pattern="\\.csv$") */ という感じでアノテーションを指定する。当然、”.”をエスケープする必要があるのだ…

V1.2動作確認

●Actionがnullを返した場合にExceptionが発生する問題を修正しました ●ファイルアップロード時、pageタグが動作しない問題を修正しました ○struts-configのinputを指定しなくて、かつ pageタグも利用しない場合に Validationを行うとStackOverflowErrorが発…

ActionForwardがnullの場合

ファイルをダウンロードさせるActionの場合、ストリームにデータを書き込んだ後にnullを返すが、その後の処理でActionForwardがnullの場合の処理がないため、S2StrutsContextUtil.setPathメソッドでNullPointerExceptionが発生する。結果的にはinputがダウン…

ファイルアップロード

RC2にバージョンアップしたら無事ファイルアップロードが出来るようになった。で、ちょっと気になったのが、フォームがenctype="multipart/form-data"になっている場合、が機能していない。Actionアノテーションでinputを指定すればいいのだが、せっかくの無…

Validation

StrutsActionアノテーションでinputを設定したら、エラーは出なくなった。しかし、せっかくdocRootをstruts-configで設定しているのに、inputにはフルパスで指定しないとMayaaでページが見つからないと怒られる。 試しに、inputをなくしてをフォームにつけて…

続ファイルアップロード

AcceptorImplのprocessにて、 ActionForm form = processor.processInputValueFormCreate(request, response, mapping); の部分で一度ストリームからフォームの値を読み込むと、 processor.processPopulate(request, response, form, mapping); の処理では既…

無設定への挑戦…

マニュアルの無設定のリファレンス … となっているが、実は以下の間違い … Validationのアノテーション validateをtrueにしたらStackOverFlowが発生…アノテーション以外は特に何も設定していない /** * @org.seasar.struts.annotation.backport175.StrutsAct…

使い方としていいのかは不明

例えばこんな感じで検索画面の初期情報を取得するActionを定義したとする。Formは特に必要ないのでactionタグのname属性は書かない(これっていいのかな?)。 これはこれでActionはちゃんと実行される。が、S2Strutsのオートバインディング機能が働いたとき…

なるほど...

Actionの実行結果を表示するJSPからPOJOFormを取ろうとしてもBeanValidatorFormだったのは、S2Strutsが元々のFormBeanをAction実行後にセットし直してるからなのか。先にソースを確認すべきだったorz ActionプロパティのInport/Exportはnullの場合は行われな…

POJOFormでやりたかったこと

JSP2.0で${POJOForm.hoge}として値を取得する場合に、requestの”hoge”にはBeanValidatorFormのインスタンスがセットされているため、${POJOForm.hoge}がエラーになってしまいその回避策として。

ActionFormをPOJOにて

POJOをActionFormとして使ってみたのはいいけれど、Viewで値を取り出そうとしたら実はBeanValidatorFormなので全然駄目だった…POJOActionだったのでリクエストが触れずAction実行後にAOPを使ってリクエストにPOJOのインスタンスに戻して突っ込むことにした。…

nullって…

ProxyActionでLookupDispatchAction使ったら、NullPointerExceptionが発生した。どうやらActionにActionServletが設定されていないようだ…ソースを見るとActionUtils#createActionでActionオブジェクトを取得しているのだが、ActionUtils#processActionCreat…