静的なページ
概要
マークアップ・ルーラーは、動的なページを出力するテンプレートエンジンです。
ですが、まずは静的なHTMLを出力する方法を練習します。

HTML
[1] html_source.html
※相対パスが[/WEB-INF]から始まるディレクトリに配置してください
<?xml version="1.0" encoding="UTF-8"?>

<html>
	<body>
		<span>hello world</span>
	</body>
</html>
Java
[2] HelloWorld.java
package org.ruler.markup.tutorial;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.ruler.markup.api.Source;
import org.ruler.markup.api.Page;

@Path("/hello")
@Source(file="/WEB-INF/html/html_source.html")
public class HelloWorld extends Page {

	@GET
	@Produces(MediaType.TEXT_HTML)
	public String hello(){
		String html = super.draw();
		return html;
	}
}
[3] HelloApplication.java
※前回と同じです。
package test;

import java.util.HashSet;
import java.util.Set;

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/rest")
public class HelloApplication extends Application {


	public HelloApplication(){
	}

	@Override
	public Set<Class<?>> getClasses() {

		Set<Class<?>> set = new HashSet<Class<?>>();
		set.add(HelloWorld.class);
		return set;
	}

}
web.xml
[4] web.xml
※前回と同じなので省略します。

実行
デプロイしてサーバー(Tomcat)を起動し、Webブラウザで登録されたパスを開いてみてください。
http://localhost:8080/rest/helloにてHTMLページが表示され、hello worldと表示されたら成功です。

説明
Pageクラスを継承し、@Sourceにリソースとなるhtmlファイルのパスを指定しています。
次回はこれをベースに動的なページを作ります。

付録
前述した[2] HelloWorld.java は、次のようにWebコンテナ(JAX-RS)とテンプレートエンジン(Markup Ruler)を
分離することができます。struts1.xなどではこちらをご利用ください。

[5] HelloView.java (マークアップ・ルーラー)
package org.ruler.markup.tutorial;

import org.ruler.markup.api.Source;
import org.ruler.markup.api.Page;

@Source(file="/WEB-INF/html/html_source.html")
public class HelloView extends Page {
	// 今回は特になし
}

[6] HelloAction.java (Webコンテナ)
package org.ruler.markup.tutorial;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/hello")
public class HelloAction {

    @GET
    @Produces(MediaType.TEXT_HTML)
    public String hello(){
    	HelloView view = new HelloView();
        String html = view.draw();
        return html;
    }
}