好きで嫌いなJSP
基本的に素のJSPは割と好き。エディタで直してブラウザでリロードすればokだし。実際のところ自分のとこみたいに、ワークフローがほぼ皆無なところでは、いわゆるWebアプリケーションフレームワークなんて不要で、JSPでゴリゴリ書いて、完成したらロジック部分をJavaに移して、WEB- INF/classesに移動するなんてやり方で作ることが多い。このサイト、RDBを全く使ってないしね。
でもやっぱりJSPは嫌い。共通部分をくくり出すのに関数とか作れないし、どうしてもとなれば、あの作るのもデバッグするのも死ぬほど面倒なタグライブラリを作らないといけない。ELは、#だの$だのと混沌としているし、そもそも美しくない。
GroovyのMarkupBuilderには、結構感動した。リンクのページはGroovletで書いてある。
import groovy.xml.MarkupBuilder
response.setCharacterEncoding("UTF-8")
out.println(
"""<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
""")
html.html(xmlns:"http://www.w3.org/1999/xhtml") {
head {
link(rel:"stylesheet", type:"text/css", href:"/stylesheet.css")
title("リンク集")
}
body {
h1("リンク集")
createBlogEntry(mkp)
...
}
}
void createBlogEntry(builder) {
builder.h2("Blog")
new Link(builder)
.setUrl("http://d.hatena.ne.jp/uno/")
.setBody() {"はてなダイアリー - unoの日記"}
.render()
...
}
みたいな感じ。で、こういうのScalaで書けたらなぁとTwitterでつぶやいたら、あっという間にkeisukenさんが作ってくれましたよ。LiftとかRailsとか、確かにとりあえず作るとこまでは簡単なんだけど、どうもブラックボックス部分が多すぎて、自分の思い通りにしようと凝りだすと、逆にえらく時間がかかってしまう。やっぱり必要最低限のことしかしないツールが、自分の好みだなぁ。まだ開発中だけど完成が楽しみ。





