【IT支援部】struts2を使ってみる

下記環境でstruts2を使う。
(12/18)色々と修正しました

Windows 8 Professional
Eclipse 4.2Juno (Pleiades)
Tomcat 6.0.36 (Pleiades同梱)
JRE 1.6.0_37 (Pleiades同梱)
struts 2.3.7



事前にstrutsをダウンロードしておく。
pleiades all in one Javaをダウンロード。
ウィンドウ→設定→TomcatからTomcatホームを設定する。

tomcat_config

プロジェクト・エクスプローラー上で右クリック、新規→プロジェクトを選択。
JavaのTomcatプロジェクトを選択。
プロジェクト名をHelloWorldとする。

project_name

パースペクティブがJavaとか他になっていたらウィンドウのパースペクティブを開くからその他を開き、Java EEに切り替える。

pers_java
pers_javaee

先ほどダウンロードしたstruts2のlibから下記jarをHelloworld/WEB-INF/libにコピー。

asm-3.3.jar
asm-commons-3.3.jar
asm-tree-3.3.jar
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
commons-logging-1.1.1.jar
freemarker-2.3.19.jar
javassist-3.11.0.GA.jar
ognl-3.0.5.jar
struts2-convention-plugin-2.3.7.jar
struts2-core-2.3.7.jar
xwork-core-2.3.7.jar

eclipseのプロジェクト/エクスプローラーからHelloWorldを右クリック、リフレッシュを選択しておく。

WEB_INFを右クリック、新規→その他からXMLファイルを選択
WEB_INF配下にweb.xmlを作成。

webxml

内容は下記のように。
[xml]
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://
java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>test.Hello</param-value> <!-- ※1 -->
</init-param>
</filter>

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

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

</web-app>
[/xml]

WEB_INF/srcを右クリック、新規→その他からXMLファイルを選択
WEB_INF/src配下にstruts.xmlを作成。
内容は下記の通り。
[xml]
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="HelloProject" extends="struts-default">

<action name="Hello" class="test.Hello"> <!-- ※2 -->
<result name="success">/index.jsp</result>
</action>

</package>
</struts>
[/xml]

WEB-INF/srcを右クリック、新規→パッケージを選択、
WEB-INF/src配下にパッケージを作成。(名前はweb.xmlの※1とstruts.xmlの※2に合わせる)

package

作ったパッケージを右クリック、新規→クラスを選択
名前をつける(拡張子不要、web.xmlの※1とstruts.xmlの※2に合わせる)

class

内容は以下のとおり。
[java]
package part1;

public class Hello {

private String replyMsg;

public String getReplyMsg() {
return replyMsg;
}

public void setReplyMsg(String message) {
this.replyMsg = message;
}

public String execute() throws Exception {
this.setReplyMsg( "Struts 2の世界へようこそ" );
return "success";
}
}
[/java]

HelloWorldを右クリック、新規→その他からJSPファイルを選択、
HelloWorld直下にindex.jspを作成。

indexjsp

内容は下記の通り。
[html]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hello!Project</title>
</head>
<body>
<a href="Hello.action">こんにちは</a>
<br />
<s:property value="replyMsg"/>
</body>
</html>
[/html]

HelloWorldを右クリック、プロパティを開く。
TomcatのWARエクスポート設定からエクスポートするWARファイルに
tomcatのwebapps\HelloWorld.warと設定する。
.javaファイルをエクスポートはどちらでも良い。

war
HelloWorldを右クリック、Tomcatプロジェクトからプロジェクト設定に従いWARファイルを作成を選択。
操作が成功しました、と出れば成功。

http://localhost:8080/HelloWorld/にアクセスでき、リンク起動ができればOK