groovy.servlet.GroovyServletの拡張

ソースはとても短いので継承するにしても別個に同等のものつくるにしても簡単。
GroovyServletでは「request」「response」「application」「session」「out」の変数がGroovletで暗黙的に使用できるように定義されている。outの変数を定義する前にServletResponse#setContentType()をしとけば日本語が表示可能。

暗黙変数作るのも簡単なのでS2Containerもたとえば「container」とかで定義できちゃう。
暗黙変数を定義して使うのっていうのはGroovletじゃなくても使えそう。これは面白い。

import groovy.xml.MarkupBuilder

html = new MarkupBuilder(out).html() {
  head() {
    title("日本語つかえます")
  }  
  p("宣言しなくてもcontainerの変数使えます")
  body() {
    table(border:1) {
      tr() {	
        td("戻り値"); td("メソッド名"); td("引数の型")
      }
      for (m in container.class.methods) {
        tr() {
          td(m.returnType.name); td(m.name); td(m.parameterTypes.name)
        }
      }  
    }
  }
}