ZeroConfigStruts

無設定Strutsの盲点

アクセッサーを自動生成するようにしてBeanUtils.copyPropertiesを使いまくるようにすると、テストできんかった。

無設定Strutsのバグ

同じActionFormを複数のActionから使おうとすると失敗します。 これもすでに対応してるんですが、しばしお待ちを。 もし急ぎで欲しい人がいれば連絡ください。

Backport175でのJava2SE1.4対応の予定

予定です。 たぶん今月中に。 id:enkimiさんが自動設定Strutsっていうの作ってるみたいなので、1.4でやりたい人はそっちを使えばいいってことで、ゆっくりやります(^^;;; 設定の調整は定数アノテーションでやるみたいです。 先に、ActionをPOJOでできるよう…

続危険なアイデア

いや、ActionFormもいけるなぁ。 @StrutsActionの@ExecuteがPOJO FormをうけとるときはPOJOのフォームを渡してやるようにして、ActionFormをうけとるときは自動生成したクラスのActionFormを渡すようにしてやる。 自動生成したクラスはActionForm継承してセ…

危険なアイデア

Actionを継承しないクラスに@StrutsActionをつけて、Action#executeではないメソッドに@Executeとかつけて登録したら、勝手にAction継承したクラスを作ってexecuteメソッドから@Executeがついたメソッドを呼び出すようにするPOJO Strutsとか。 でも、ActionF…

URLパターン

アンダーバー区切りができるようになる設定も必要ですね。

無設定Strutsできました

ということで、無設定Strutsできました。 http://www.fk.urban.ne.jp/home/kishida/kouza/zeroconfigstruts/zeroconfigstruts.html ちゃんとしたリファレンスにはなってないですが、だいたいの雰囲気はわかるかと。 アノテーションは、struts-config.xmlに書…

プロパティの生成

ということで、セッターゲッターの記述も不要になりました。 もう、素のStrutsは触りたくありません。 しかし、ごはん食べながら休憩がてらバイトコードいじくれるJavassist素敵。

プロパティも自動生成?

セッターとかゲッターとかも自動的に作ってしまえ、と。 アクセッサーってうっとおしいですよね。

XDocletもアノテーションもないStruts

他の人が作ったシステムをいじってて、struts-config.xmlを直接編集してあるので、 return mapping.findForward("menu"); とか書いてあってもなんのことやらで、わざわざ検索しないといけない。 新しく画面追加するときも、なんかそれっぽいところを探して定…

Strutsアノテーション、実装中

気晴らしにStrutsアノテーションを実装してみました。 で、アクションを「ResultAction」ていう名前で普通に作って「result.jsp」を作ると、「result.do」にアクセスして「result.jsp」が表示されるようになって、さらに「ResultForm」を作るとそれなりの入…

「ゼロコンフィグStruts」プラグイン

という名前で、アノテーション機能を省いて、デフォルト動作だけ行うようなものを作ってもそこそこ便利かも。 nameとかinputとか、最低限の属性はstatic finalなフィールドに持たせて。

Strutsアノテーションでのアイデア

action-forwardを省略すると、パス名やクラス名と同じ名前のJSPを探してaction-forwardをsuccessという名前で指定する。 pathを省略すると、クラス名を指定する。 全部省略するならアノテーションすら必要なし。

続・Strutsアノテーション

作りこむ時間はないので定義だけ考えてるんですけど、実装次第ではActionFormは定義もアノテーションも必要なくなったりするので、かなり楽になりそうです。 public @interface StrutsAction { String path(); String success() default ""; Class form() de…

Strutsアノテーションプラグイン、できちゃいました・・・

簡単な実装が、30分くらいでできちゃったんですが・・・。 固定のクラスに対しての処理だけですけど。 こんな感じのアノテーション書いて @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface StrutsAction { String path(); …