前の
ポストで、先に Dynamic Web Project を作って、それをベースに Maven の依存性管理を与えるやり方で、WTP と m2eclipse を連携させてみた。今度はその逆をやってみる。
ネタとしては、
以前 JSF2.0 でやったような、サーバ時間を表示する Getting Started 的な Web アプリを、Struts2 で作ってみる。
各プロダクトのバージョンは、WTP 3.1.1、m2eclipse 0.9.8、Maven 2.2.1、Tomcat 6.0.20、Eclipse 3.5。
■ プロジェクトの準備プロジェクトのプロパティを開いて以下の作業
- Project Facet で Java にチェックを入れる。
- そのまま Dynamic Web Module にもチェックを入れ、バージョンを 2.5 にし、Runtime タブで Apache Tomcat v6.0を指定(Server Runtime 構成済みの前提)。
- ソースとアウトプットが以下のようになるよう設定する。(test関連フォルダ は省略。)
source | output |
---|
src/main/java | target/classes |
src/main/resources | target/classes |
- プロパティを一回閉じて開きなおす。
- さっきまで無かった Java EE Module Dependencies があるので、これを選択して Maven Dependency にチェック
コンテントフォルダ関連の修正
- Navigator ビューから".settings/org.eclipse.wst.common.component"ファイルを開いて "WebContent" を"src/main/webapp"に変更する
- WebContent の中身(META-INF, WEB-INF)をsrc/main/webapp にコピーしてから、WebContent を削除する
Maven から WTP への作業はここまで。
■ アプリを書く
以下で、確認用の小さな Struts2 アプリを作る。
- pom.xml に以下の dependency を追加(2.1.8 は 2009/10/30 現在の最新)
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.1.8</version>
</dependency>
- 適当にパッケージを作って以下の内容の ServerTimeAction クラスを作成
package net.xad.web.struts2.trial2;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.opensymphony.xwork2.ActionSupport;
public class ServerTimeAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private static final String FORMAT = "yyyy/MM/dd HH:mm:ss";
private String serverTime;
@Override
public String execute() {
serverTime = new SimpleDateFormat(FORMAT).format(new Date());
return SUCCESS;
}
public String getServerTime() {
return serverTime;
}
}
- src/main/resources 下に以下の struts.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="net.xad.web.struts2.trial2" namespace="/" extends="struts-default">
<action name="serverTime" class="net.xad.web.struts2.trial2.ServerTimeAction">
<result>/index.jsp</result>
</action>
</package>
</struts>
- web.xml を、以下のように編集する
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>struts-trial1</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</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>index.html</welcome-file>
</welcome-file-list>
</web-app>
- index.jsp を書き替える
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<body>
<h2><s:property value="serverTime"/></h2>
</body>
</html>
できた。
■ 確認
http://localhost:8080/struts-trial2/serverTime.action で時間が表示されるはず。F5 押下で更新。
1 件のコメント:
こんにちは。
技術は一つ一つの事の積み重ねですね。
コメントを投稿