Mayaaとのドッキング


SAStrutsでMayaaを使った例を紹介する。
「Dolteng」を使うとMayaaを使う環境の整ったプロジェクトを簡単に作成できる。
 

Mayaaプロジェクトの作成

Eclipseのメニューから「ファイル(F)」→「新規(N)」→「プロジェクト...(R)」にて表示されるダイアログボックスより「Dolteng」を選択する。

 

SAStruts_install_dolteng1

 

下図のダイアログボックスにて、プロジェクト名とルートパッケージ名を入力。 ここではプロジェクト名にSAMayaaを,ルートパッケージ名にmySAStrutsを入力するものとする。
プレゼンティーションに「SAStruts+Mayaa」を,永続化にS2JDBCを選択する。
他はデフォルトのまま「完了(F)」ボタンを押す。

SAStrutsの新しいプロジェクトを作成するでの設定との違いは、プレゼンティーションに「SAStruts+Mayaa」を選択するところだけである。

 

SAStruts_SAMayaa1

 

作成された新しいプロジェクト「SAMayaa」を右クリックして表示されるメニューより、「tomcatプロジェクト」→「コンテキスト定義を更新」を選択して、プロジェクトをtomcatに登録する。

tomcatを起動する。
src/main/java/を展開して「mySAStruts.action」パッケージのIndexAction.javaを選択、マウスの右クリックメニューより「SAStruts」→「サーバで表示」を選択する。

下図のような画面が表示されればOK。

 

SAStruts_SAMayaa2

 

/SAMayaa/src/main/webapp/WEB-INF/viewにはMayaaのファイルが作成されている事が確認できる。

 

SAStruts_SAMayaa3

 

Mayaaページの作成

新しいアクションの追加で作成したexsample1と同じページを、Mayaaで作ってみよう。

Formクラスはそのまま同じソースが使えるので、SAStrutsAppプロジェクトよりmySAStruts.form.Exsample1Form.javaを、SAMayaaプロジェクトにコピーする。

ActionクラスについてはSAStrutsAppプロジェクトより、mySAStruts.action.Exsample1Action.javaをSAMayaaプロジェクトにコピーして、index.jspとresult.jspの部分を、下記のようにindex.htmlとJresult.htmlに修正する。

package mySAStruts.action;

import javax.annotation.Resource;
import org.seasar.struts.annotation.ActionForm;
import org.seasar.struts.annotation.Execute;

import mySAStruts.form.Exsample1Form;

public class Exsample1Action {

	@ActionForm
	@Resource
	protected Exsample1Form exsample1Form;

    @Execute(validator = false)
	public String index() {
        return "index.html";
	}

    @Execute(validator = false)
	public String result() {
        return "result.html";
	}
}

入力ページと出力ページindex.html,index.mayaalとresult.html,result.mayaaを、src/main/webapp/WEB-INF/view/exsample1フォルダに以下のように作成する。

index.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>exsample1入力フォーム</title>
</head>
<body>
<h1>exsample1入力フォーム</h1>
<hr />
<s:form id="form">
	<table>
		<tr>
			<td>名前</td>
			<td><input id="name" type="text" /></td>
		</tr>
		<tr>
			<td>部署</td>
			<td><select id="departmentName">
				<option value="営業">営業</option>
				<option value="営業">営業</option>
				<option value="開発">開発</option>
				<option value="製造">製造</option>
			</select></td>
		</tr>
		<tr>
			<td>給料</td>
			<td><input id="salary" type="text" /></td>
		</tr>
	</table>
	<input type="submit" name="result" value="送信" />
</s:form>

index.mayaa

<?xml version="1.0" encoding="UTF-8"?>
<m:mayaa xmlns:m="http://mayaa.seasar.org"
	xmlns:s="http://sastruts.seasar.org"
	xmlns:f="http://sastruts.seasar.org/functions"
	xmlns:bean="http://jakarta.apache.org/struts/tags-bean"
	xmlns:html="http://jakarta.apache.org/struts/tags-html"
	xmlns:c="http://java.sun.com/jsp/jstl/core"
	xmlns:fmt="http://java.sun.com/jstl/fmt"
	xmlns:fn="http://java.sun.com/jsp/jstl/functions">
	<s:form m:id="form"></s:form>

    <html:text m:id="name" property="name" />
	<html:select  m:id="departmentName" property="departmentName">
		<html:option value="営業">営業</html:option>
		<html:option value="開発">開発</html:option>
		<html:option value="製造">製造</html:option>
	</html:select>
    <html:text m:id="salary" property="salary" />
</m:mayaa>

result.html

<html>
<head>
<title>exsample1出力フォーム</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>exsample1出力フォーム</h1>
<hr />
<table border="1">
	<tr>
		<td>名前</td>
		<td><span id="name">name</span></td>
	</tr>
	<tr>
		<td>部署</td>
		<td><span id="departmentName">departmentName</span></td>
	</tr>
	<tr>
		<td>給料</td>
		<td><span id="salary">salary</span></td>
	</tr>
</table>
</body>
</html>

result.mayaa

<?xml version="1.0" encoding="UTF-8"?>
<m:mayaa xmlns:m="http://mayaa.seasar.org"
	xmlns:s="http://sastruts.seasar.org"
	xmlns:f="http://sastruts.seasar.org/functions"
	xmlns:bean="http://jakarta.apache.org/struts/tags-bean"
	xmlns:html="http://jakarta.apache.org/struts/tags-html"
	xmlns:c="http://java.sun.com/jsp/jstl/core"
	xmlns:fmt="http://java.sun.com/jstl/fmt"
	xmlns:fn="http://java.sun.com/jsp/jstl/functions">

	<m:write m:id="name" value="${name}" />
	<m:write m:id="departmentName" value="${departmentName}" />
	<m:write m:id="salary" value="${salary}" />
</m:mayaa>

結果としてexsample1と同じページが表示できる。

eclipseのエディタ上での右クリックメニューの「対応するJSPを開く」,「対応するjavaファイルを開く」の機能はSAStruts+Mayaaでは使えないようだ。

 

ページのトップへ戻る