読者です 読者をやめる 読者になる 読者になる

いろんなJava Webフレームワークで同じ画面を作ってみる(Teeda編)

Java

いろんなJava Webフレームワークで同じ画面を作ってみる(Teeda編)です。
お題は、こちら

Teedaは、JSFの実装でHTMLテンプレートが利用できることが特徴です。規約重視のフレームワークです。

HTMLテンプレートといえばMayaaはよく使ったなぁ。

convention.dicon

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
  "http://www.seasar.org/dtd/components24.dtd">
<components>
  <component class="org.seasar.framework.convention.impl.NamingConventionImpl">
    <initMethod name="addRootPackageName">
      <arg>"webapp"</arg>
    </initMethod>
  </component>
</components>

SAStrutsと同じ感じで、まずはaddRootPackageNameでベースとなるパッケージを指定します。

AddInputPage.java

まずは、入力画面のページクラスです。

package webapp.web;

import org.seasar.teeda.extension.annotation.validator.Required;

public class AddInputPage {

	@Required
	public Integer arg1;

	@Required
	public Integer arg2;

	public Integer result;

	public Class<AddResultPage> doCalculate() {
		result = arg1 + arg2;
		return AddResultPage.class;
	}
}

ページ駆動の開発で、Dolteng使うとページクラスも簡単に生成できます。htmlとページクラスを1対1で作成するというわかりやすさはあると思います。

AddResultPage.java

次は、結果出力画面のページクラスです。

package webapp.web;

public class AddResultPage {
	public Integer result;
}

フィールド名を合わせておけば、値は引き継がれるということでしょうか。エラー発生時の画面遷移の変更方法がわからない。。

addInput.html

入力画面のHTMLです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:te="http://www.seasar.org/teeda/extension" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
</head>
<body>
<form id="Form">
<div><span id="messages"></span></div>
<input type="text" id="arg1"/><span id="arg1Message"></span><br/>
+<br/>
<input type="text" id="arg2"/><span id="arg2Message"></span><br/>
<input type="submit" id="doCalculate"/>
</form>
</body></html>

本当に純粋なHTMLです。id属性の規約で色々実現されていますが、id属性はJavaScriptスタイルシートから利用されることを考えると、Mayaaのように m:id 属性みたいなのが、あった方が良かったのかとも思います。

addResult.html

結果出力画面のHTMLです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:te="http://www.seasar.org/teeda/extension" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
</head>
<body>
<span id="result"></span>
</body></html>

いじょ