2016-12-24 3 views
0

私はJSPとサーブレットを使っていたのでしばらくありました。今、私はJSPが時代遅れであり、使用されるべきではないことをいくつか見つけました。そうですか?どうして? Spring Frameworkを使用して新しいプロジェクトを開始し、Webページや同様の出力をレンダリングする場合、テンプレート用に代わりに使用する必要があるのは何ですか?JSPは優れていますか?

+0

見積もりやリンクを追加する – Raedwald

答えて

1

春(、Struts、Apache Wicketおよび他のフレームワーク)は、サーブレットに基づいています。 Web用のSpringを使用しているときは、基礎となるテクノロジーとしてサーブレットを使用しています。

JSPは本当に少し古いです。そしてそこにいくつかの不便があります。例えば、JSPはWebデザイナーにとって本当の頭痛です。デザイナーは、JSPファイルにはHTML用に無効なタグが含まれているため、JSPファイルを開いたり、変更したり、ブラウザで結果を確認したりすることはできません。ブラウザでページをどのように見えるかを確認する唯一の方法は、アプリケーションをデプロイしてサーバーでレンダリングできるようにすることです。

JSPのもう一つの不都合は、共通レイアウトを専用ファイルに外部化できないことです。あなたは、<jsp:include>で1ページを別のページにインポートするだけです。また、何百ものファイルがある場合は、共通の部分をコピーするために、すべて同じファイルを<jsp:include>で繰り返す必要があります。


何百もの複雑な動的ページがある場合、大きなプロジェクトに適したテンプレートエンジンがあります。人気のあるものの1つはThymeleafです。

Thymeleafのテンプレートには有効なHTMLだけが含まれています。これは、設計者とプログラマーが並行して作業できることを意味します。また、それは良いレイアウトシステムを持っています。さらに、ThymeleafはJSPとは対照的に、はるかに読みやすくエレガントな構文を持っています。一例として、Thymeleafで単純なテーブルを生成するためのコード:

<html> 
.... 
<table> 
    <tr> 
    <th>Name</th> 
    <th>Price</th> 
    <th>In stock</th> 
    </tr> 
    <tr th:each="prod : ${prods}"> 
    <td th:text="${prod.name}">Onions</td> 
    <td th:text="${prod.price}">2.41</td> 
    <td th:text="${prod.inStock}? #{true} : #{false}">yes</td> 
    </tr> 
</table> 
.... 
</html> 

ように国際化のサポートでビルド、フラグメントにパラメータを渡すなど、他の多くの追加機能があります。

ThemeleafとJSPの比較の詳細はherehereです。

関連する問題