ぶろぐ

日記です

Struts2.2.3ではまった


あっさ!
Struts2.2.3を動かすだけで息切れしてしまった。
Struts2さん、バージョンによってファイル名とか細かい仕様とか変わっているのかな?
頼みますよー自分みたいな情弱さんは一日かけて迷いました。
何とかエラーを追っかけて、妄想(こうだろう、と仮定)してやっと動かせた。

必要ファイル

こいつらをlibフォルダに入れる

  • commons-fileupload-1.2.2.jar
  • commons-io-2.0.1.jar
  • commons-lang-2.5.jar
  • commons-logging-1.1.1.jar
  • freemarker-2.3.16.jar
  • javassist.jar
  • ognl-3.0.1.jar
  • struts2-codebehind-plugin-2.2.3.jar
  • struts2-core-2.2.3.jar
  • xwork-core-2.2.3.jar

注意点

struts2-codebehind-plugin-2.2.3.jar、こいつを入れないとゼロコンフィギュレーションを使用できない。
そしてゼロコンフィギュレーションで動かす場合、struts.xmlはいらない。削除。(struts2のjarファイルの中に、デフォルトのxmlファイルがあり、それが使われている)
あと、命名規約が重要になる。ExampleActionクラス、TestActionクラス、などアッパーキャメルでおしりがActionなクラス名にする。URLアクセスはexample.actionやtest.actionとなる。
ExampleDesuActionなど、二つ大文字が入ると、example-desu.actionとなるらしい。
あと、WEB-INF/libとtomcatoのlibに同じjarファイルを置くとエラーになった(自分は)

参考サイト
Struts2のアクション名指定ではまった話 : ScarMitt
http://scarmitt.sakura.ne.jp/programs/struts2_no_action_mapped.html

Validationもノンコンフィギュレーションでいけるらしい。

web.xml

とりあえず下記のように設定。

<filter>
 <filter-name>struts2</filter-name>
 <filter-class>
  org.apache.struts2.dispatcher.FilterDispatcher
 </filter-class>

 <init-param>
  <param-name>actionPackages</param-name>
  <param-value>
  pkg.test
  </param-value>
 </init-param>
</filter>

<filter-mapping>
 <filter-name>struts2</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>

struts.xml

削除、作らない

チュートリアル

ここ参考にやるといいと思う

Struts 2入門(1)〜基本形で理解する仕組みと構造〜(1/4):CodeZine
http://codezine.jp/article/detail/2296?p=3

追記

2011/08/15
codebehind-pluginは、最新バージョンでは非推奨だった.
変わりにconvention-pluginを使う.
codebehindでもゼロコンフィギュレーションできるけど、conventionならさらにCoC(設定より規約)を重んじた使い方ができるみ.