webwork

Exceptionハンドリング

Action内でExceptionを投げると、exceptionInterceptorがキャッチしてくれるんですけど、 preapare内でException投げるとキャッチしてくれない。 痒いところに手が届かない・・・

prepare

Preparableインタフェースを実装すると、prepare()メソッドが呼ばれますが、 prepareXXXXとprefixにprepareとつけると呼び出そうとしているメソッドが呼ばれる前に実行させられるようです。 例えばinitを呼び出す前にだけ処理したい場合は、 prepareInitを実…

validation.xml

XXXAction-method-validation.xmlを使ってバリデーションを行うときに、 <message key="required.input"/>としておいて、XXXAction.propertiesに required.input={0}を入力して下さいと、していた場合どうやってパラメータを渡せばいいのか分からない。 アクション内でやる場合なら、 getTex</message>…

ParameterAware

Mayaa Webwork2でParameterAwareが上手く動きません。訂正 Mayaa Webwork2で動かないのではなく、webwork2のParameterAwareとValidationInterceptorが上手く動いていないだけでした。これに関しては、Interceptorを使わずに内部で処理することで回避できます…

プルダウンリスト

入力で必須項目にプルダウンがある場合、 エラーチェックで戻る(result name="input")とプルダウンが空になる。 そりゃそうだわな。 入力画面を出すアクションのメソッドでリストを取得してて、 入力チェックがかかるメソッドは別だし。 あれ、以前も同じ事…

non webwork taglib

Mayaa標準タグで、各部品をコンポーネントとして作っておけば再利用できる。 いやぁ、Mayaaってよくできてるなぁ。 下記のように書いた場合、当然エラーとなります。 コンポーネントに渡したリストにアクセスするキーを渡してるのですが、 どうやってアクセ…

% と $ その3

ブレークポイントを付けて追っかけてみました。 「%」の場合は、タグ内でOGNL評価されます。 「$」の場合は、WebworkValueStackScopeでOGNL評価されたものが、更にタグ内でOGNL評価されています。 そのためStringの「1」をもう一度ONGL評価するとIntegerの「…

% と $ その2

昨日「プロパティkeyとvalueを持つオブジェクト」と書いて省略してましたが、 public class Dto{ private String key; private String value; /* getter/setter 略 */ }これだと、selected が key と同値である場合はきちんと「selected」となりました。※%の…

% と $

webworkのタグライブラリでは式言語を使うときに「%」を付けます。 MayaaResultを使うと、「$」を付けます。 基本的にこれらで取れる値は同じはずですよね? でも、違うみたいなんです。 試しに出力してみたんですけど、見た目は同じようなんですけど、 タグ…

MayaaResult

mayaa1.1.2ではhotodeploy中にMayaaResultが使えていたけど、 mayaa1.1.3から使えなくなった。 CycleUtil#getFactoryでIllegalStateExceptionが出る。

バージョン 解決

先日のバージョン違いによるエラーの原因が分かりました。 webwork2.2.3からDebuggingInterceptorというのが入っていて、 webwork.propertiesに webwork.devMode = true と書くとこれが有効になるようで、この中でresponseをcloseしているようです。 これを…

Mayaa + Webwork2

id:matobatさんからどうなってますか? というツッコミが来たので、言い訳を・・・ 自分が作ってたときとAPIが変わっていて、今のAPIでは何もしてません。 matobatさんが作られたものを利用しています。 とりあえずMayaaのMLに、こういったフレームワークへ…

先を越された

S2Xwork本家にH★O★T deploy対応の先を越された。 Daoさえ上手く動けば・・・ と思って、SVNから最新を取得中・・・ mvn installあれ?maven-jar-pluginが何とかって出てbuildできない。 maven良くわかってないから・・・

Dto

H★O★T deploy時にセッションから抜き出したオブジェクトをキャストすると ClassCastExceptionになる。 ・ソース Object obj = SessionManager.getAttribute(SESSION_KEY); System.out.println(obj.getClass().getName()); if(obj instanceof HogeDto){ Syste…

Validatorアノテーション

さっぱり使い方が分かりません。 ClassName-alias-validation.xmlと等価にするためにはどう書けばいいでしょうか? あと、ModelDrivenのモデルにValidationをかけたい時も。

結局昨日のはautoRegistは関係なし。 というか、HotDeploy使うときはdiconファイルのルート?をs2container.diconにするのかな? HotDeployを使わないときはapp.diconをルートにするんだろうか?

HotDeploy + Annotation

普通にHotDeployFilterをかけたら、うまくいった。 ただ、毎回アノテーションを見て設定を作り直してるので、そこを何とかしたい。 HotDeployで、「置き換えたよ!」みたいなイベント拾えないんですかね。 S2 2.4 beta4に入れ替えたら動かなくなった・・・ d…

HotDeploy

HotDeployってアノテーションまで効く? クラスを書き換えてHotDeployを利用して置き換えたら、 きちんとAPサーバの再起動無しで反映されたんだけど、 アノテーションを読み込んでも変わらない。 Class.forNameだと一度読み込んだクラス情報はキャッシュして…

HotDeploy

S2StrutsでHotDeployができるみたいだけど、どうやってクラスが変更されたのを感知?しているんだろう。 Action定義等のアノテーションの変更も有効なのかな? 有効とすれば、HotDeploy時に設定を生成しなおしてると思うんだけど、どこか分からない。

Validator

xwork-tiger.jarのModelDrivenでのValidatorアノテーションの使い方が分からない。

Scope

id:matobatさんのWebworkValueStackScopeをそのまま使ってみた。 おぉ、動く。 iterateAttributeNamesはこのScopeからアクセスできる名前リストを返せばいいのかな? となると、この場合はActionのプロパティとDtoのプロパティとなるのか? 何に使うんだろう…

OGNL

いまいち構造が理解できてない。 webworkとどう連携してるのか・・・ ソース読むしかないな。 OGNLというより、OgnlValueStackがどう使われているかだな。 単に裏のモデルがスタックされてるだけ? [0]=Dto(ModelDriven) [1]=Action [2]=?

動いた!

RuntimeConfigurationはConfigurationManager.getContiguration()するときに作られるみたい。 だからgetConfiguration()した後にaddCofigurationしても読まれない訳だ。 getCofiguration()する前にaddCofigurationするためには、CofigurationProviderを作る…

Configuration

S2Strutsを参考にアノテーション部分を考えていたんだけど、うまくいかない。 ConfigurationManagerから取得したPackageConfigに追加しても、呼び出せない。 XmlConfigurationProviderを見るとあまり大差のないことしてるんだけどな。 呼び出されるところの…

アノテーション

現行のS2Xworkは ConfigurationProvider の実装クラスである AnnotaionConfigurationProvider を app.dicon で ConfigurationManager に登録してます。 これって xwork.xml とかで設定できないのかな。 そういえば、Webworkにも標準のアノテーションがあった…

S2Xwork

今公開されているS2Xworkは設定がいろんな所に分散していて何だか使いにくい気がする。 web.xml と app.dicon に手を入れないといけない。 webwork.properties の webwork.objectFactory に S2 の ObjectFactory を設定するだけで使いたい。今のS2ObjectFact…

変わってる

2.1.7 と 2.2.2 のProertyTagのソースを見たけど、変ってた。 継承しているクラスも変ってる。 2.2.2は最後にBodyの中身を吐いているっぽい。

2.2.2リリース

2.2シリーズはこれが最終で、開発チームはApache Struts Actionの開発へ移ってしまうようです。

webwork2.2 リリース

webwork2.2がリリースされたようです。 時間のあるときに見てみよう。 それにしてもダウンロードするファイルサイズがだんだん大きくなってるなぁ。

ObjectFactory

beta4になって、buildBeanの引数が変わっていた。 aタグがhrefタグに変わっていたり、いろいろ細かい変更点があるなぁ。 hrefにformみたいなaction属性があればいいのにな。