Teedaを使ってみる

既存のJSPからHTMLを抜き出して、Teedaで動作するように「移行できるか?」プロトを作っている。
一遍通りの画面ができたところで少しまとめてみる。
推奨では、Eclipse+Doltengなんだけど、maven2でjetty:runで実行して使っている。
理由は、Eclipseって結構大きいから、ダウンロードしづらい。実際、使い出すときには、用意しないと(HTML/PAGEの切り替えとか便利な機能が多いから)w

よかったと思うこと

  1. いわれている通り、設定ファイルがいらない。今のところ、パッケージのプロジェクト名を変更しただけ。
  2. ExtensionでXYの固定行列を持ったスクロールが名前を変えるだけでできる。
  3. 数値項目であれば、自動的に数字以外入力できないInputタグが生成される。

苦労したこと

  1. GRIDXYでは1つのテーブルではなく、複数(3つかな)に分けて生成されるため、Exampleにあるような奇数・偶数行を塗り分けるテーブルだとそのままできれいに出るけど、1つのテーブルのように罫線を出そうとすると、隙間が空いたり、2重に出たりして、どのタグに出すかとか少し工夫がいるみたい。
  2. リンクにCGI引数をつけて渡そうとするとFormのIDもページ名と同じ命名規約がいるみたい。そうしないと、aaa=1の1がその時のaaaの値にならない。
  3. ページクラスで、変数名のスコープを間違えても通ってしまう。まぁ、これは、コーディングミスなんだけど、個人的には、セッターやゲッターの仮引数は、対象の変数名じゃなくってaとかbとかでいいと思ってる。といっても、自動生成する分には困らないけど、手で書くと結構まちがえるのよね。(でもって、このレベルで間違えると結構気づかない。)
  4. テキストをUTF-8に変換。これは、よく分からない。ブラウザーで化けたから、こうしたらちゃんと出たってレベル。不思議なのは、Javaのファイルでもこうなってしまった。確か、コンパイルするときに自動的にUTF-8に変換しているって聞いた記憶があるけど、記憶違いだったのかな。ロケールに関してはとりあえず、ちゃんと出るようにしただけだから、DB(実はSJIS)と連携するときにまじめに対応してみる。
  5. 正規表現でのヴァリディエータのとき、エラーメッセージに正規表現がそのまま出ちゃう。適当な文言に変更しようとしたけど、別のメッセージ用意するしかないみたい。[a-z]{8}とかって出るより、正規表現部分を「英小文字8桁」とか別名にできるとメッセージ用意しなくて楽なんだけど、欲張りすぎかな。(pattern='..',alias='..'見たいなノリでw)

くらいかなぁ、いまのところ。
とりあえず規約として

  • クラス名は、HTML名+Page(これがDtoとかDxoとアクション)
  • アクションクラスを分ける場合は、HTML名+Actionってクラスを作れば勝手に呼ばれる
  • formのID名は、HTML名+Form
  • tableのID名は、スクロールがないなら、要素名+Grid、水平方向のスクロールなら、要素名+GridX、垂直方向のスクロールがあるなら、要素名+GridY、両方あるなら、要素名+GridXY
  • tableの要素名のjavaでの名前は、要素名+Items、で、これをインナークラスで定義・・かな。実行してみる限り、行列要素のsetter/getter以外に、単純要素のsetter/getterも呼び出されていて、リンクとかするときに使われているのかも。

があるのかな。

よく分からないから、別方法で解決したこと。

  • テーブルで1行全体に対して、onclick=".."という記述が通らない。固定列ができたから、とりあえず、アンカーで対応。
  • inputのイメージボタンでのsubmit。idを"do..."とかにするだけでは足りないと思ってやっていない。
  • テーブルの罫線の出し方、実はtdとthのタグに対して直接、スタイルを指定している。td { ... }って方法。もう少しスマートな方法にしないと、別の目的でテーブル使えない。
  • Pageファイルでのエラーの出し方。なんとなく、メッセージプロパティを用意すればいいらしけど、よく調べていない。
  • portlet対応。1画面を複数に分割して出したいけど、今のところFrameで対応している。portletなら多分、分割の仕方を指定すればすむから、便利だと思うけど、とりあえず後回しw


ってとこかな。