2011-01-05 11 views
2

私は新しいSpring MVCプロジェクトを開始しようとしていますが、私はそのビューのさまざまなオプションを検討しています。私はJSPのファンではありませんでしたが、これまではJSP関連のパフォーマンス問題にぶつかっていましたので、私は他のオプションを検討していました。私は、誰かがさまざまなオプションの国勢調査を取って(多分それは私でなければならない)、どんなものが速いか、少なくともどのオプションがあるのか​​を発音することを望んでいます。ここでは明らかに発注私が考えてきた選択肢は、奇妙に、次のとおりです。最速のJava Webテンプレート言語

  • JSP、JSTL
  • 速度
  • FreeMarkerの
  • GSP(GroovyのJSP)
  • ERB IronRubyのか、いくつかによって供給そのような狂気
  • ティー

任意の提案、個人の好み、またはその他の行きますリストのオプションは?

答えて

3

私は最近、ベロシティが好きです。パフォーマンスは良いです。私はテンプレートとデータを切り離す自然な方法が好きです。

2

私はVelocityを使用しました。プロジェクトは少し停滞し、いくつかの既知の問題があったので、Freemarkerに切り替えました。私はVelemocityが勢いを失ったのでFreemarkerが出てきたと私は(私に言わないで)信じています。いいえ、意図されていない。

その後、Velocityは少なくともしばらくは再びアクティブになりました。私は今Freemarkerを好むが、どちらもうまくいく。私はSpring MVCより簡単にプラグインすることができます。

7

StringTemplate - 高速でシンプルで、MVCによる懸念の分離に役立ちます。最後に確認しましたが、Spring Web MVCはViewクラスを提供していませんが、簡単にcreate a custom oneにアクセスできました。

+0

これらhttp://code.google.com/p/stringtemplate-web-extensions/、http://code.google.com/p/を見てくださいspringmvc-stringtemplateview/ –

5

私はおそらくFreeMarkerのかベロシティ自分で行くだろうが、私はあなたがこれらすべての可能な解決策のうち

JSP関連のパフォーマンスの問題

呼んで驚いて、JSPは明らかに最善であります - 実行する。結局のところ、JSPページはサーブレットクラスにコンパイルされ、バイトコードから実行されますが、あなたが言及した他の技術はすべて解釈されます。

パフォーマンスに問題がある場合は、JSPコードを最適化するか、JSPCのようなJSPコンパイラを使用してJSPページをプリコンパイルします(おそらく、JSPC-maven-pluginを使用してmavenを使用します)。

+0

+1。 Btw、他のテンプレートが最も頻繁にキャッシュされるので、パフォーマンスの違いはありません。 – Bozho

+0

あなたはもちろんそうです。 JSPはかなり速くなければなりません。しかし、私たちの最後のプロジェクトはかなり複雑になり、JSPファイルを含むJSPファイルもJSPファイルも含めていました。私たちがそれらを最適化するのにもっと時間を費やしていたのであれば、本当にスピードを上げることができたはずです。 –

+0

"あなたが言及した他のすべてのテクノロジーは解釈されます":GSPはJavaからGroovyにコンパイルされ、動作する方法はJSP – Kedare

0

私はSean Patrick Floydに同意します。JSPは本当に速くなければなりません。 キャッシュされていても、ほとんどの場合、他のテンプレートエンジンよりも高速です。

実際にJSP関連のパフォーマンス上の問題が発生した場合は、JSPの使い方を再考する必要があります。

少なくとも、パフォーマンス上の問題を引き起こすホットスポットがある場合は、この(hopeflully)小さなpiceを手作業で構築するよりも(StringBuilder)。

これをラップするには:JSPは堅牢なものです(手動で行うことを除いて)。しかし一方で、メジャーのいずれかでperfomace問題を実行するには、非常に特殊なユースケースが必要ですあなたが言及したテンプレートengienes。

0

MVELを試してください。それは私が知っているもの(StringTemplateを含む)よりも速く、本当に強力で、普通のJavaでのスクリプトのように感じます。

<p> 
    @foreach{index : alphabetical} 
    <a href="@{index.uri}">@{index.description}</a> 
    @end{} 
</p> 

または

<a href="@{ua.pageURI}"> 
    @{org.apache.commons.lang.StringEscapeUtils.escapeHtml(ua.name)} 
</a> 
関連する問題