あなたが特別に直接Javaと関連がある対処する問題へのあなたの
アプリケーションをコード化する必要がないことは、Velocity開発者の信念です。
言い換えると、
JSP/Strutsコミュニティの多くの議論のうちの1つは、その効果が何かということです:
「これは、JSPを使うことの粗末な例です。」
これが真実かもしれないが、問題の事実はほとんど、
利用できるあらゆる例が本当にJSPを使うことの粗末な例であるということです。
これは、あなたのページにおいてJavaコードをはめ込むことは悪いものであると言うステートメントに戻ります。
そうです、今や、我々はそれを全て知っています。
人がJSPについてあるJavaWorldで利用可能な記事を読むならば、
あらゆる一つの記事が1つのものを持ってほとんど、あるいは、
別のそれで、ツールの粗末な使い方を示します。
なぜ、多くの(明らかに)優秀な人々がツールを使用することの正しい例を考え出す
ことができなのでしょうか?
真実は、正しくツールを使用することは非常に難しいということです。
Strutsは、それをより簡単で正しい方法を示すために試みるようにする
優れた仕事をしています。しかし、それが単にJSPの本来のデザインの
醜さを隠しています。
あなたがクラスを拡張するオブジェクト指向設計命令は、機能をベース・クラスに加えます。
ベース・クラスの中のpublicに利用できるメソッドは、それを拡張するクラスが、さらに利用できます。
StrutsをJSPのトップに置くことは、JSPのイボを修理しません。
あなたの開発者がそれらを見つけるまで、それは単にそれらを隠します。
 |
 |
 |
 |
<%-- toolview.jsp --%>
<%
String title = "Tool Listing";
String deck = "A list of content creation tools";
String desc = "Without tools, people are nothing more than animals.";
%>
<%@ include file="/header.jsp" %>
<%@ page session="false" %>
<%@ page errorPage="/errorTaker.jsp" %>
<jsp:useBean id="toolbean" class="ToolBean" scope="application">
<jsp:setProperty name="toolbean" property="toolsFile"
value='<%= application.getInitParameter("toolsFile") %>' />
</jsp:useBean>
<%
Tool[] tools = toolbean.getTools(request.getParameter("state"));
for (int i = 0; i < tools.length; i++) {
Tool tool = tools[i];
%>
<HR SIZE=2 ALIGN=LEFT>
<H3>
<%= tool.name %>
<% if (tool.isNewWithin(45)) { %>
<FONT COLOR="#FF0000"><B> (New!) </B></FONT>
<% } else if (tool.isUpdatedWithin(45)) { %>
<FONT COLOR="#FF0000"><B> (Updated!) </B></FONT>
<% } %>
</H3>
<A HREF="<%= tool.homeURL %>"><%= tool.homeURL %></A><BR>
<%= tool.comments %>
<% } %>
<%@ include file="/footer.jsp" %>
|
 |
 |
 |
 |
 |
 |
 |
 |
JSP の空白保存規則のため、scriptletsでif/else文を書くとき、
あなたは慎重にならなければなりません。
以下のコードは、*動作しません*。
<% if (tool.isNewWithin(45)) { %>
<FONT COLOR=#FF0000><B> (New!) </B></FONT>
<% } %>
<% else if (tool.isUpdatedWithin(45)) { %>
<FONT COLOR=#FF0000><B> (Updated!) </B></FONT>
<% } %>
このコードでは、バックグラウンドサーブレットは、if と else の
間で改行を出力しようするので、
「if」の指定なしに「else」が使用された
という不明瞭なコンパイルエラーを発生します。
|
 |
 |
 |
 |
これは、上記の例をVelocityに翻訳したバージョンです
 |
 |
 |
 |
## toolview.vm
#set ($title = "Tool Listing")
#set ($deck = "A list of content creation tools")
#set ($desc = "Without tools, people are nothing more than animals." )
#parse ("header.vm")
$toolbean.setToolsFile($application.getInitParameter("toolsFile"))
#set ($tools = $toolbean.getTools($request.getParameter("state")))
#foreach ($tool in $tools)
<HR SIZE=2 ALIGN=LEFT>
<H3>
$tool.Name
#if ($tool.isNewWithin(45))
<FONT COLOR="#FF0000"><B> (New!) </B></FONT>
#elseif (tool.isUpdatedWithin(45))
<FONT COLOR="#FF0000"><B> (Updated!) </B></FONT>
#end
</H3>
<A HREF="$tool.homeURL">$tool.homeURL</A><BR>
$tool.comments
#end
#parse ("footer.vm")
|
 |
 |
 |
 |
あなたが判断してください。
[ JavaBeans <- 前 |
次 -> Taglibs ]