[Seasar-user:5446] [S2Struts] 無設定Strutsでコンポーネント名を"/"で始めることができない

Kazuya Sugimoto [E-MAIL ADDRESS DELETED]
2006年 12月 13日 (水) 16:09:15 JST


杉本と申します。

件名の件ですが、無設定Strutsのドキュメントでactionタグのpath属性の
部分を見ると、コンポーネント名が"/"から始まっている場合にはpathに
コンポーネント名としてそのまま使うと書いてあります。

しかしコンポーネント名を"/"から始めるActionをDiconに登録しておくと
例外が発生してしまいます。

ソースを見ていくと
ZeroConfigActionRuleImpl#addFowardConfigの
String file = getPath(actionClass, null) + "." + viewExtension[i];
の部分でgetPathの第2引数のModuleConfigにnullが入ります。

そしてgetPathから呼ばれる#getActionPathNameの
} else if (isPathComponentName(result)) {
        return toPathComponentName(result, config);
の部分で、"/"から始まっているため

#toPathComponentNameが呼ばれます。
configがnullとなっているためこのメソッドの第2引数にもnullが入ります。

#toPathComponentNameではconfig.getPrefix()とconfigを使っている
のですがconfigがnullのため、ここで例外が発生してしまいます。

特に問題が無いようでしたら、コンポーネント名を"/"から始めるActionを
Diconに登録できるように対応お願いします。


-- 
Kazuya Sugimoto
http://d.hatena.ne.jp/sugimotokazuya/



Seasar-user メーリングリストの案内