-私的イメージ(4)-舞台裏

ごくあたりまえな先のc:outタグのインジェクションの舞台裏で、Javaのソースに変換するのは次のワークフローです。

  • HTMLのSAXパース開始。
  • 名前空間の定義からTLDをとっておく。
  • jwcid属性をもってないHTMLタグはそのタグを書き出すコードを書く。
  • jwcid属性をもったHTMLタグを見つける。
    • 属性値を分析
    • 識別子が定義されていたとき
    • プレフィックスからTLDを取得。
      • TLDに定義されたJSPタグライブラリの実装クラス名を取得。
    • Contextを作ってスタックに積むコードを記述。
    • そのクラスを生成するコードを記述。
    • バインディング
      • 設定XMLがあればそのバインディング情報を反映するコードを記述。
      • HTMLタグ中の属性にタグパラメータがあればその値を反映するコードを記述。
    • doStartTag()を呼ぶコードを記述。
    • 子タグがあったら、Contextをスタックに積んでループ。。。
    • 以下略。つまりはJasperがやってることをやる。

こんなことをやります。で、こうやって作ったJavaのソース(POJO?)をコンパイルして、Invokerサーブレットにセットします。このへんはJasperがどうやってるかは後に調べて参考にしましょう。
Eclipseプラグイン上で動作する開発時であれば、上記のコード記述のところで、モデルを構築するようにします。