Mixer2はJavaアプリケーション用テンプレートエンジンです。テンプレートはXHTMLで書きます。 100% pureな、XHTMLとCSSです。(html5もXML構文で書けば使えます)
通常のJSPとカスタムタグによるテンプレートでは、
<span id="foo" class="bar"><bean:write name="person" property="name" /></span>
あるいは
<span id="foo" class="bar">${person.name}</span>
のように書きますが、これは複雑であり、ブラウザでの見た目の確認が困難です。
Mixer2でのテンプレートは下のように書きます。
<span id="foo" class="bar">John Doe</span>
もちろん、Webアプリ上で使う場合でもテンプレートファイルの拡張子を*.jspにする必要はありません。
複数の異なる店舗が軒をつらねるショッピングモールのようなECサイトや、 あるいはブログサービスサイトなどでは、 Webアプリケーションとしての機能は同じであってもユーザー毎に異なるWebデザインを求められることがあります。
あるいは、サイトがひとつでユーザーがひとりであっても、 マーケティング上の理由から、機能を変えずに見栄えを常に変更しつづけたい、 という要求もあります。
しかし、JSPやVelocityに代表される従来型のテンプレートエンジンは、 JSPであればカスタムタグを、 VelocityであればVTL(Velocity Template Language)を用いた特殊な構文を、 通常のhtmlタグに混在させてテンプレートを書く必要があります。
これは顧客とWebデザイナーの立場から見ると最終的なデザインの確認がしづらく、 プログラマーの立場から見るとプログラムによる出力が本当に顧客やWebデザイナーの意図したとおりなのかを確認しづらく、 そしてすべての立場から見て、デザインの変更がしづらい、といったデメリットがあります。
また、JSP向けのタグライブラリは、 標準ライブラリであるJSTLをはじめとして、 struts等の各種フレームワークが提供するタグまで含めると数百種類におよびます。 Javaやフレームワークの各種APIだけでなく、 多数のカスタムタグをも自在に操ることができるようになるにはそれなりの経験が必要です。
Mixer2はこれらの問題の解決を目指しています。 Java-WebアプリケーションのViewを、 本来の純粋なJavaプログラミングとhtmlマークアップの世界に取り戻すのです。
Mixer2を使うと、ひとつのWebページ上のうちの、 Webアプリとして動的に表示が変更される部分のhtmlタグの種類とそのid/class属性について 開発者とデザイナーの間で合意していれば、 あとは両者はそれぞれの仕事に専念することができます。 Webデザイナーの仕事はXHTMLとCSSで美しいテンプレートを書くことだけです。 そしてプログラマーはJavaコード上でそのテンプレートをloadして、 タグ毎にもうけられたJavaオブジェクトに対する情報の埋め込み操作とテストをします。
JSPとカスタムタグでやっていたことをJavaコード上に移しても、 コード量が変わらないどころかむしろ増えてしまう可能性があります。 しかし、ViewをJavaコードで開発できるということは、 IDE(eclipse等)のコード補完機能がそのまま使えるということです。 また、定型処理をするためのJSPカスタムタグを自作するよりは、 Mixer2で簡単なユーティリティを自作するほうが容易かもしれません。 そして従来ではSelenium等を使うしかなかったViewに対する自動テストを、普段いつも使っているJUnitで書けます。
そうした理由から、Webアプリケーション開発の生産性と品質の向上も期待できます。