URLを短く? & Struts2 .actionの変更

まったくもって意識してなかったんだけど、
どうも他の大手webサイトは.phpとか.cgiとかを極力表示せず、表示するとしたら.htmlにして、GETパラメータ(?の後ろ)を最小限もしくは非表示(POSTしてんだろうと思う)にしたいようだ。

うーん そういう御時世なのか・・・

Strutsは.doがデフォだけど、web.xmlでhtmlに書き換えてやればいくんだろうけど、それはやった方がいいのかと。そう思う。

さて、Struts2では.actionがデフォだがこれを変更するには、
web.xmlのFilterDispatcherにinit-paramを追加してやれば良い。
↓はその例。.htmlと.strutsをactionとみなすように設定してある。
見てのとおり複数指定(することああんまりないと思うけど)はカンマ区切りでできる。
<filter>
 <filter-name>struts2</filter-name>
 <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
 <init-param>
  <param-name>struts.action.extension</param-name>
  <param-value>html,struts</param-value>
 </init-param>
</filter>

さて、これ、ネットを探してみたがどこにも載ってなかった(と思う)
しょーがなくソースを徘徊して見付けたのだが、
@Injectアノテーションがいたるところにあることに気づいた。
ちなみに、.actionの設定は、DefaultActionMapperの
setExtensions()メソッドで行っている。
これにも、@Inject(StrutsConstants.STRUTS_ACTION_EXTENSION)
とInjectionの指定がある。
これをたどっていくと、

StrutsConstants.STRUTS_ACTION_EXTENSION = "struts.action.extension"
だということが分かる。
ためしにinit-paramに設定してみたら偶然うまくいった(笑)

他の設定も全て同じように変更できると思うので、
他に設定したいんだけど、設定のしかたが分からん人はこれを参考に
設定項目を見てみれば糸口がみつかるかも。