従来のVer1.x系とは設定方法がいくつか変更になっていますが、最低限の設定でも組み込めるように改良されています。
今回はEclipseのプロジェクトにStruts2を組み込む手順を説明します。
プロジェクトファイルのダウンロード
Struts2の入手
まずはStruts本体を以下からダウンロードします。
Full Distributionにあるstruts-2.1.8.1-all.zipをダウンロードします。
http://struts.apache.org/2.x/
ダウンロードしたファイルを展開します。
文字エンコードの設定
Eclipseの設定を変更し、ファイルをUTF-8で作成するようにします。
(SJISやEUC JPでも作成はできますが、後々面倒になります。)
メニューからWindow / Preferncesをクリックします。
ツリーからGeneral/Workspaceを選択します。
Text file encodingをOther: UTF-8にします。(デフォルトはMS932になっています)
同様に、ツリーからWeb/JSP Filesを選択します。
EncodingをISO 10646/Unicode(UTF-8)に変更します。
プロジェクトの作成
Dynamic Web Projectを作成します。
この例ではプロジェクト名をstruts2_sampleとします。
プロジェクトを右クリックし、New - Source Folderでxmlというフォルダを作成します。
このフォルダに設定ファイルを保存します。
JSPファイルを保存するフォルダをWEB-INFフォルダに作成します。
JSPファイルの位置やファイル名は、struts2の規則に従う必要があります。
WebContent/WEB-INFフォルダを右クリックしNew - Folderでcontentフォルダーを作成します。
ファイルの追加
エクスプローラからプロジェクトにファイルを追加します。
まず、struts2が使用するライブラリをstrutsの展開したファイルにあるlibフォルダからプロジェクトのWebContent/WEB-INF/libフォルダにコピーします。
コピーするのは以下の5ファイルです。
commons-fileupload-1.2.1.jar freemarker-2.3.15.jar struts2-convention-plugin-2.1.8.1.jar struts2-core-2.1.8.1.jar xwork-core-2.1.6.jar
strutsの設定ファイルを作成します。
先ほど作成したプロジェクトのxmlフォルダにstruts.xmlというファイル名で保存します。
このファイルにはstruts特有の設定を記述します。
内容を一部抜粋すると以下のようになります。
<constant name="struts.action.extension" value="action" /> <constant name="struts.ui.theme" value="simple" />
同様に、プロジェクト以下のWebContext/WEB-INFにあるweb.xmlファイルを修正します。
このファイルはアプリケーションサーバとWebアプリケーション全体にかかわる設定を記述します。
内容を一部抜粋すると以下のようになります。
<filter> <filter-name><filter> <filter-name>struts-prepare</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>actionPackages</param-name><param-value></param-value></init-param> </filter> <filter-mapping> <filter-name>struts-prepare</filter-name> <url-pattern>*.action</url-pattern> <dispatcher>FORWARD</dispatcher> <dispatcher>REQUEST</dispatcher> </filter-mapping>
再びEclipseに戻り、プロジェクトを右クリックしてRefreshを実行します。(F5キーでも実行できます)
この操作を行わないとエクスプローラなどで変更したファイルはEclipseに認識されないので注意してください。
Eclipseにxml/struts.xmlが表示されれば成功です。
設定の確認
まだ何も作成していませんが、とりあえずサーバが起動するか確認してみます。
プロジェクトを右クリックし、Run as - Run as Serverを実行します。
Eclipseの右下に表示されるConsoleペインにExceptionやエラーといった表示がなければ成功です。
確認したらサーバを停止します。
Actionクラスの作成
次に、strutsの機能を使用して画面を作成します。
まず、画面から送信されたデータを処理するActionクラスを作成します。
プロジェクトのsrcフォルダを右クリックし、New - Class を実行します。
New Java Classの画面が表示されたらパッケージ名とクラス名を入力します。
パッケージ名はクラスを分類するフォルダのようなもので、strutsで使用する場合は習慣でactionという名前にします。
また、クラス名の末尾はActionとします。
この例では以下のようにします。
パッケージ名:com.googlecode.tecproglab.struts2_sample.action.sample
クラス名:SampleFormAction
SampleFormActionクラス内に以下を追記します。
private String userName; private String message; public void setUserName(String userName) { this.userName = userName; } public String getMessage() { return message; } public String execute() { if(userName != null && userName.length() > 0){ message = "こんにちは" + userName + "さん"; } return "success"; }
Ctrl+Sキーを押しファイルを保存します。
Eclipseでは保存した直後にコンパイルが自動で行われます。
エラーがあると赤のマークが表示されます。
JSPファイルの作成
次に、画面の内容となるJSPファイルを作成します。
WebContent/WEB-INF/contentフォルダを右クリックしNew - Folderでsampleフォルダを作成します。
sampleフォルダを右クリックし、New - Otherをクリックします。
NewダイアログでWeb/JSPを選択します。
ファイル名をsample-form.jspとしファイルを作成します。
JSPのファイル名はActionのクラス名を小文字にし、単語の区切りは『-』(ハイフン)にします。
sample-form.jspファイルを編集します。
先頭の@pageタグの下に以下のタグを追加し、HTMLタグにあわせてstruts特有のタグを使用できるようにします。
<%@taglib prefix="s" uri="/struts-tags"%>
bodyタグの中に以下の内容を追加します。
<s:property value="message" /> <br /> <br /> <s:form> 名前:<s:textfield name="userName" /> <br /> <s:submit value="送信" /> </s:form>
Ctrl+Sキーを押しファイルを保存します。
画面の確認
以上でstrutsで使用するファイルの作成は完了です。
サーバを起動し、ブラウザから以下のページが表示されるか確認します。
http://localhost:8080/struts2_sample/sample/sample-form.action
プロジェクトファイルのダウンロード
0 件のコメント:
コメントを投稿