GroovletとMarkupBuilder

Groovletを動かしてみる。なんとなく使ってみたくなった。

Groovy - Java用スクリプト言語の例ではHTML自体が文字列でその中に変数埋め込んでいるけど、条件分岐やループを使ってページを生成するにはMarkupBuilderを使うことになると思う。生きてまをみてMarkupBuilderのコンストラクタにWriterを渡せることに気づいたので暗黙変数のoutをわたす。

import groovy.xml.MarkupBuilder

map = [1:"one",2:"two",3:"three"]

html = new MarkupBuilder(out).html() {
  head() {
    title("Groovlet and MarkupBuilder")
  }
  body() {
    p("Number Mapping Display")
    table(border:1) {
      for (e in map) {
        tr() {
          td(e.key); td(e.value) //;を使って横に書く
        }
      }  
    }
  }
}

結果

Number Mapping Display

1 one
2 two
3 three

  • 感想など
    • 設定はweb.xmlを編集するだけなのですぐ使える。
    • 日本語を表示したかったけどどうするのだろう?HttpServletResponse#setContentType()つかえないし。
    • eachとかtimesをつかったループが使えなかった。for文は問題ない。
    • タグのBodyと属性の両方指定することはできない?
    • ひとつのタグで1行じゃなきゃいけないのか?td()など横にいくつも書けたらいいのに。でないと見にくい。横に書ける。;が使える忘れてた。
    • 使い勝手はいまいち?

「Groovlet」でぐぐってみると日本語のページは3件だけ。自分の日記もふくまれちゃってる。