DOM Tree
package org.ruler.markup.tutorial;
import org.ruler.markup.api.Code;
import org.ruler.markup.api.Http;
import org.ruler.markup.api.Mount;
import org.ruler.markup.api.Node;
import org.ruler.markup.api.Page;
import org.ruler.markup.api.Type;
@Mount(path={"/index.html", "/home.page", "/tutorial1"})
public class Tutorial1 extends Page {
@Override
public void action(Http http) {
/** HTTP GET METHOD. */
http.GET = (event) -> {
/** Create DOM Tree. */
Node html = new Node();
html.tag("html");
Node body = new Node();
body.tag("body");
body.in(html);
Node div = new Node();
div.tag("div").text("Tutorial2").br().text("hello world").br().attr("style", "font-size:32px;").in(body);
Node copy = new Node(div);
copy.in(body);
/** HTTP config. */
event.code(Code.OK_200); // HTTP Status Code. default value is OK(200).
event.type(Type.html); // HTTP Content Type(MIME TYPE). default type is HTML.
//e.type(Type.xml) for AJAX or REST.
//e.type(Type.binary) for download ZIP or something.
/** Render. */
event.draw(html);
};
/** HTTP POST METHOD. */
//http.POST = (event) -> { ... };
}
}
デプロイ
ソースコードをコンパイルしたら、[WEB-INF/lib] , [WEB-INF/classes]にデプロイしてください。
実行
サーバー(Tomcat)を起動して、Webブラウザで登録された3つのパスのどれかを開いてみてください。
例. http://localhost:8080/MyApplication(ContextRoot)/turorial1
("/index.html", "/home.page", "/tutorial1")
HTMLページが表示され、hello worldと表示されたら成功です。
[結果]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<body>
<div style="font-size:32px;">Tutorial2<br/>hello world<br/></div>
<div style="font-size:32px;">Tutorial2<br/>hello world<br/></div>
<body>
</html>
仕組み
@MountアノテーションによってURLと関連付けられたPageクラスは、
アクセスごとにnew()されてaction(Http http)が呼び出されます。