2011-12-03 8 views
0

一つは次のとおりです。執筆クリーンJSPコード

ライティングクリーンJSPコード

次のJSPフラグメントが何をしているかを把握することは非常に厄介です。これは、暗黙の変数outを使用して、ブラウザに返されるHTMLページをhttp応答の本文に明示的に書き出します。 正気なJSPプログラマのやり方で書き直してください。

<% 

out.write(“<HTML>”); 

out.write(“<HEAD><TITLE>foo</TITLE></HEAD>”); 

out.write(“<BODY> List of Temperatures:”); 

out.write(“<UL><LI>La Jolla:” + weather(“La Jolla”) + “</LI>”); 

out.write(“<LI>El Cajon:” + weather(“El Cajon”) + “</LI></UL>”); 

out.write(“</BODY></HTML>”); 

/%> 

私は少し混乱しています。答えはちょうど次のようなものでしょうか?

<html> 
<Head><Title>foo</Title></Head> 
<Body> 
    .... 
</Body> 
</html> 
+0

アカウント。 – Blender

+0

それはどういう意味ですか? – pew007

答えて

1

JSPテクノロジは、静的コンテンツと動的コンテンツの分離を重視しています。

静的コンテンツと動的コンテンツを含むテンプレートを定義できるテンプレートエンジンと同じです。 HTMLコードを直接使用して静的コンテンツをマークアップしたり、静的コンテンツに挿入する動的コンテンツを定義するための「プレースホルダ」(タグライブラリやEL式など)を使用できます。

この例では、唯一の動的コンテンツは、関数weather(xxxxx)によって返された結果です。私は、この関数を単に都市名を受け取り、この都市の天気を表す文字列を返す静的関数として実装できると仮定します。

EL expression allow you to define a custom function。カスタムEL機能としてweather(xxxxx)を実装した後、あなたはJSPでそれを呼び出すことができます。

<html> 
<Head><Title>foo</Title></Head> 
<Body> 
    List of Temperatures: 
    <UL> 
      <LI>La Jolla: ${myLibrary:weather("La Jolla")} </LI> 
      <LI>El Cajon: ${myLibrary:weather("El Cajon")} </LI> 
    </UL> 
</Body> 
</html> 

それはもはやスクリプトレット(Javaコード)が含まれていて、JSPが今よりきれいあってはならないと、すべての動的コンテンツがありますサーバー側の機能によってカプセル化されています。 `天気(「ラ・ホーヤ」)`のための


リファレンス

+0

ありがとうございました! – pew007

関連する問題