- PR -

struts-configのcontroller要素について

1
投稿者投稿内容
sinh
ベテラン
会議室デビュー日: 2003/01/22
投稿数: 87
投稿日時: 2004-03-28 02:19
お世話になります。

StrutsでRequestProcessorを継承したクラスを作成し
struts-config.xmlのcontroller要素のprocessorClass属性に
設定したのですが、このクラスにパラメータを渡すことは
可能でしょうか?
plug-in要素では子要素にset-propertyを設定してPluginを
実装したクラスにgetter/setterを設定すればできるのを
知って、同じようにcontroller要素でもできるかと思い
set-propertyを子要素として設定しgetter/setterを設定しましたが
例外が発生しました。
よろしくお願いします。
Emacs信者
常連さん
会議室デビュー日: 2003/08/10
投稿数: 38
投稿日時: 2004-03-28 16:50
以下の手順により、可能だと思われます。
ただし、Strutsのソースを読んだ限りでの話です。
実際に試したわけではありませんので、もしダメでしたらゴメンなさい。

(1):ControllerConfigを拡張して、お望みのプロパティのsetter,getterを追加します。

(2):controller要素のclassNameの値として、(1)で作成したクラスを指定します。

(3):RequestProcessor.init(ActionServlet,ModuleConfig)をオーバーライドして、初期化コードを実装します。
ModuleConfig.getControllerConfig()により取得したControllerConfig(これは、実体は(1)で作成したクラスです)の中に、struts-configで設定したプロパティ値が格納されているはずです。

(4):controller要素のprocessorClassの値として、(3)で作成したクラスを指定します。
sinh
ベテラン
会議室デビュー日: 2003/01/22
投稿数: 87
投稿日時: 2004-03-28 21:39
Emacs信者さんへ
書かれていたとおりに行ったところ
最初は、NullPointerExceptionが発生してしまいましたが
その後、RequestProcessorを拡張したクラスのinitメソッド
の中でsuper.initを追加したら、例外も発生しなくなり
実行されるようになりました。
ありがとうございました。
Emacs信者
常連さん
会議室デビュー日: 2003/08/10
投稿数: 38
投稿日時: 2004-03-29 00:07
引用:

その後、RequestProcessorを拡張したクラスのinitメソッド
の中でsuper.initを追加したら、例外も発生しなくなり



super.initについては、すっかり忘れてました…
すいません。
1

スキルアップ/キャリアアップ(JOB@IT)