2016-09-19 23 views
2

私はStruts 2.3から2.5.2に移行しようとしていますが、2つの奇妙な問題があります。彼らは2.3で良かったので、多分問題はConvention Pluginについてです。私はstruts.xmlでのデフォルトのアクションに設定されている場合Struts 2.3から2.5への移行の問題

http://myurl/anything/limit.action -> OK ... which should be There is no Action ... 

そして:2.3で

mypackage.actions.LimitAction 
mypackage.actions.user.UserAction 

:2.5で

http://myurl/limit.action   -> OK 
http://myurl/anything/limit.action -> There is no Action ... which is OK 
http://myurl/user/user.action  -> OK 

はのは、私は2つのアクションを持っていると仮定しましょう:

<default-action-ref name="other" /> 

<action name="other" class="mypackage.actions.OtherAction"> 
    <result /> 
</action> 

その後

http://myurl/limit.action   -> went wrong and OtherAction is shown 

私はデフォルトのアクションを持っているならば、メインパッケージ(mypackage.actions)内のすべてのアクションはOtherActionによって隠されているが、

http://myurl/anything/limit.action -> still works which is wrong too 

が、それはStrutsの2.5のバグであることの。そうです2? メインパッケージでアクションを実行せずにデフォルトアクションを設定するにはどうしたらいいですか? はどうすればanyurl/*とメインパッケージ内のアクションにアクセスしないように修正することができますアクション

答えて

1

は両方の問題は、メインパッケージ内のすべてのアクションに"/"名前空間を設定することにより、固定されています。

@Namespace("/") 

要求URLが

とき

Strutsがアクションを見つけることができない場合、デフォルトの""名前空間でLimitActionを調べます。

関連する問題