確かに、JSPにはいくつかの テンプレート機能がありますが、JSFでJSPを使用する最大の欠点は、JSPがテンプレートテキストコンテンツに遭遇するとすぐに応答に書き込むのに対し、JSFはそれを使用して前処理/後処理を実行することです。JSF 1.0 / 1.1では、次のJSFコード
<h:outputText value="first"> second <h:outputText value="third"> fourth
を生成します
2番目4番目最初の3分の1
これは、JSF 1.0/1.1の時代に頭痛の種でした。開発者は、上記の例のように、すべての場所でsecond
タグでテンプレートテキストをラップする必要があります。JSF 1.2は、JSPを実行する代わりに解析する改良されたビューハンドラーでこれを解決しましたが、JSP構文がXMLのように「整形式」ではないため、内部ではまだ非常に不器用でした。効率的なSAXベースのパーサーを使用できるように、XMLベースのビューテクノロジーが強く望まれていました。そして、Faceletsが誕生しました(Ken Paulsenの「JSFTemplating」の中で)。fourth
<f:verbatim>
また、統合ELをJSPテンプレートテキストで使用できなかったため、との混合が#{}
醜くなり、初心者にとっては直感的ではありませんでした。また、JSTLはJSP上のJSF 1.xで、ビュービルドタイムタグとして使用できない可能性があります。また、JSP構文は古くからあり、生のJavaコードをJSPに埋め込む可能性は、MVCのイデオロギーを破る非常に貧弱な慣習と見なされています。${}
#{}
<% %>
結局のところ、JSF / MVCの観点では、JSPは単純に醜くてひどいものであり、Faceletsは単純にクリーンで素晴らしいものです。