Velocity

Velocityについて

コミュニティ

ドキュメント

比較

ツール

日本語訳について

サンプルアプリケーション

あなたが特別に直接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 ]



このドキュメントは、 熊坂祐二 が訳しました。
コメントがある場合は、 jajakarta-report@jajakarta.good-day.net までお願いします。
オリジナル英文 Copyright © 1999-2001, Apache Software Foundation