Mayaaとのドッキング
SAStrutsでMayaaを使った例を紹介する。
「Dolteng」を使うとMayaaを使う環境の整ったプロジェクトを簡単に作成できる。
Mayaaプロジェクトの作成
Eclipseのメニューから「ファイル(F)」→「新規(N)」→「プロジェクト...(R)」にて表示されるダイアログボックスより「Dolteng」を選択する。
下図のダイアログボックスにて、プロジェクト名とルートパッケージ名を入力。 ここではプロジェクト名にSAMayaaを,ルートパッケージ名にmySAStrutsを入力するものとする。
プレゼンティーションに「SAStruts+Mayaa」を,永続化にS2JDBCを選択する。
他はデフォルトのまま「完了(F)」ボタンを押す。
SAStrutsの新しいプロジェクトを作成するでの設定との違いは、プレゼンティーションに「SAStruts+Mayaa」を選択するところだけである。
作成された新しいプロジェクト「SAMayaa」を右クリックして表示されるメニューより、「tomcatプロジェクト」→「コンテキスト定義を更新」を選択して、プロジェクトをtomcatに登録する。
tomcatを起動する。
src/main/java/を展開して「mySAStruts.action」パッケージのIndexAction.javaを選択、マウスの右クリックメニューより「SAStruts」→「サーバで表示」を選択する。
下図のような画面が表示されればOK。
/SAMayaa/src/main/webapp/WEB-INF/viewにはMayaaのファイルが作成されている事が確認できる。
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では使えないようだ。