[Seasar-user:8522] Re: [S2] XIncludeできません
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2007年 6月 21日 (木) 02:00:32 JST
小林 (koichik) です.
Date: Wed, 20 Jun 2007 23:37:46 +0900
From: 松崎 学 <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:8521] Re: [S2] XIncludeできません
> > こちらで試したところ,Validator の
> > setAllValidatorLabels(Map) で HashMap が
> > DI されました.
> ソースを見直してみましたが、やはりダメでした。。。
> diconとValidatorを添付します。
> (ValidatorはTRequiredValidatorにMapを追加しただけです。)
添付のソースと dicon をちょっとだけ変更して
(パッケージとか) HOT deploy で試してみましたが,
ちゃんと DI されました.
Validator のソースと allValidatorLabels.dicon
そのものには問題がないように思います.
あと可能性があるのは allValidatorLabels という
名前のコンポーネントが重複していることでしょうか.
S2TestCase を継承したテストクラスで
protected void setUp() {
super.setUp();
include("app.dicon");
}
public void test() throws Exception {
Map labels = (Map) getComponent("allValidatorLabels");
}
とやってみてください.
また,allButtonLabels など,allValidatorLabels 以外の
プロパティを Validator に持たせてどうなるか確認してください.
後は...
Web コンテナの起動時に
S2Containerを作成します。path=〜
というログが出ていると思うので,allValidatorLabels.dicon など
必要な dicon がロードされていること,余計な dicon が
ロードされていないことを確認してください.
また,web.xml を次のように変更して
<servlet>
<servlet-name>s2servlet</servlet-name>
<servlet-class>org.seasar.framework.container.servlet.S2ContainerServlet</servlet-class>
<init-param>
<param-name>configPath</param-name>
<param-value>app.dicon</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value><!-- ここを true に -->
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
http://localhost:8080/webapp/teedaservlet?command=list
のようにすることでコンポーネントの状態を
確認することができます.
allValidatorLabels がちゃんと (一つだけ) 見えているか
確認してください.
それから,DI されないのは HOT deploy でしょうか?
COOL deploy にするとどうなるでしょうか?
P.S.
余談ですが,Map は OGNL 式を使って次のように
書くことができます.
<component name="allValidatorLabels" class="java.util.Map">
#{
"inAppCd" : #{
"JPN" : "申請者",
"ENG" : "english"
},
"inSts" : #{
"JPN" : "状態",
"ENG" : "english"
},
...
}
</component>
<initMethod> を使って組み立てるよりもスッキリと
書けると思います.すでに手遅れかもしれませんが...
ご存じでしたらごめんなさい.
# 7000 行近い dicon は初めて見たもので.(^^;
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内