The Jakarta Project < Velocity Tools - Struts >

Velocity Tools

VelocityStruts

VelocityStruts Tools

その他のサブプロジェクト

VelocityStruts ユーザガイド
       

This guide explains how to setup and configure a VelocityViewServlet which can render the views of a Struts-based web application. The servlet will create a VelocityEngine to render *.vm (velocity template) files using contextual information provided by a Struts Controller action.

このガイドでは、Struts ベースの Web アプリケーションのビューのレンダリングを行う VelocityViewServlet のセットアップと設定の方法について説明します。 このサーブレットは Struts のコントローラにより提供される情報を元に、 *.vm (Velocity テンプレート) ファイルをレンダリングする VelocityEngine を作成します。

A set of built-in tools have been created which provide the same functions as the Struts JSP Tag libraries for Tiles, Validator, forms, links, messages, and errors.

いくつかのビルトインツールが作成されました。 これらはTiles、Validator、フォーム、リンク、メッセージ、 エラーのためのStruts JSPタグライブラリと同じ機能を提供します。

The distribution contains examples which demonstrate the use of the built-in Struts tools. The examples are packaged into a web archive file (velstruts.war).

配布物には Struts ツールの使用例が含まれています。 この例は Web アーカイブファイル (velstruts.war) にパッケージングされています。

This document is not a general introduction to the Velocity template language and its syntax. If you are new to Velocity, please consult Getting Started with Velocity.

このドキュメントは Velocity テンプレート言語 やその文法を紹介するものではありません。 もし Velocity を触るのが初めてならば、 Velocity を使い始める を参照しておいてください。

Table of Contents

  1. Background
  2. Model 2 Architecture
  3. Installation
  4. Rendering the View
    1. Velocity Template Language
    2. Exposing Data
    3. Access to Servlet Resources
    4. Access to Struts Framework Resources
    5. View Tools

目次

  1. 背景
  2. Model 2 アーキテクチャ
  3. インストール
  4. ビューの表示
    1. Velocity テンプレート言語
    2. データを渡す
    3. サーブレットリソースへのアクセス
    4. Strutsフレームワークリソースへのアクセス
    5. ビューツール(訳注: このリンク先は存在しません。 最新のドキュメントではこのリンクは削除されています。)

背景
       

The documentation will explain the steps necessary to integrate Velocity with Struts applications. It is expected that the reader already has a basic understanding of those projects.

このドキュメントは VelocityStruts アプリケーションと統合するのに必要なステップを説明します。 読者はすでにこれらのプロジェクトの基本的な部分を理解していることを前提とします。

To start working with Velocity and Struts we recommend reading the user guide, installing and browsing the example applications and reference documentation, then installing the VelocityStruts view layer into your own application.

Velocity と Struts を始める前に、ユーザガイドを読み、 アプリケーション例とリファレンスガイドをインストールして眺め、 それから VelocityStruts をあなたのアプリケーションのビューレイヤとして使用することをお勧めします。

If this documentation does not answer all your questions, please post questions to the Velocity-User mailing list and we'll be happy to help! (And we'll update this doc!)

もしこのドキュメントがあなたの疑問を解決しきれないと判断したら、 質問を Velocity-User メーリングリスト にポストしてください。 喜んで手助けします! (そしてドキュメントを改良していきます!)


Model 2 アーキテクチャ
       

In the JSP world, the terms Model 1 architectures and Model 2 architectures were coined to refer to particular ways of designing and building web applications. It is important that you understand the fundamental difference between these two architectural approaches. JSP can be used in applications designed after Model 1 architectures as well as Model 2 architectures. Velocity cannot. It has been designed very consciouly as a view technology for web application architectures based on Model 2.

JSP の世界では、 Model 1 アーキテクチャと Model 2 アーキテクチャが Web アプリケーションの設計、 製造の方法として確立されました。 この2つの設計アプローチの基本的な違いを理解することは重要です。 JSP は Model 2 アーキテクチャだけではなく、 Model 1 アーキテクチャとして設計された Web アプリケーションでも使用することができます。 Velocity は違います。 Velocity は Model 2 に基づく Web アプリケーションアーキテクチャのビューテクノロジとして設計されました。

Model 1 Architectures

Model 1 アーキテクチャ

In a Model 1 architecture, the JSP page alone is responsible for processing the incoming request and replying back to the client. Using MVC speak, the controller and the view are implemented within the same JSP page. Model 1 architecture are suitable only for very simple application scenarios. In medium size to large projects, the lack of a separation between business logic and view oftentimes leads to difficulties in separating the web designer's works from the server developer's work and causes project management headaches.

Model 1 アーキテクチャでは、単体の JSP ページで、 リクエストを処理しクライアントにレスポンスを返します。 MVC でいうところの、コントローラおよびビューが、 同じJSPページ内に実装されています。 Model 1 アーキテクチャは非常に単純なアプリケーションのシナリオのみに適します。 中規模から大規模のプロジェクトでは、 ビジネスロジックとビューの間の分離がきちんとできていないことが、 サーバ開発者の仕事から Web デザイナの仕事を分ける際の困難さに結びつき、 プロジェクト管理の頭痛の種となります。

Model 2 Architectures

Model 2 アーキテクチャ

In a Model 2 architecture, the control component, including business logic, data access and request handling, are strictly separated from the view component. The view does not contain any processing logic. It is simply responsible for displaying the data that resulted from processing the request. This may be a static page or more often a dynamic page. Such an approach typically facilitates are clear delineation of the roles and responsibilities of the developers and the web designers. The more complex an application, the greater the benefits of using a Model 2 architecture will be.

Model 2 アーキテクチャでは、ビジネスロジック、データアクセス、 リクエストハンドリングを含むコントロールコンポーネントはビューコンポーネントから明確に分離されます。 ビューはいかなる処理ロジックも含みません。 リクエストの処理結果であるデータの表示を行うだけです。 これは静的なページであることもありますが、大抵は動的なページとなるでしょう。 このようなアプローチは一般的に、 開発者および Web デザイナの役割や責任の明瞭な線引きを促します。 アプリケーションがより複雑であるほど、 Model 2 アーキテクチャを使用する利点はより大きいものとなるでしょう。

The paper Understanding JavaServer Pages Model 2 Architecture provides a more in-depth discussion of Model 1 and Model 2 architectures.

JavaServer Pages Model 2 アーキテクチャを理解する で Model 1 と Model 2 アーキテクチャのより深い議論が提供されています。

What does this mean?

これは何を意味するの?

The Struts framework can support both architectures, but all the facilities it provides are really aimed at making the construction of Model 2 applications easy. Velocity on the other hand cannot be used to build Model 1 architectures. It lacks the libraries to support such a design. I am emphasizing this here because I want to make sure that you have all the relevant facts before you decide on Velocity for your projects. This is especially important for people considering to port existing application built on the Model 1 approach or a mixed Model 1 / Model 2 approach. The good news is, that today for any serious application Model 2 is state of the art and Velocity will support you very well on that route.

Struts フレームワークは両方のアーキテクチャをサポートしていますが、 実際には提供される機能はすべて Model 2 アプリケーションの構築を容易にすることが目的です。 Velocity はそうではなく、Model 1 アーキテクチャでは使用することができません。 そのような設計を支援するライブラリがないのです。 あなたが Velocity をプロジェクトに採用することを決定する前に、 このような事実をすべて把握していることを確認するため、 ここで強調しておきます。 これは、 Model 1 アプローチあるいは Model 1 / Model 2 混合アプローチ上で構築された既存のアプリケーションを移植することを検討している人々には特に重要です。 最後に、良いお知らせです。 現在の本格的なアプリケーションでは Model 2 は最先端技術であり、 この手法を用いる限り、 Velocity はあなたの力強い味方となるでしょう。


インストール
       

This section explains the basic setup to configure the VelocityViewServlet to render the web application views in Struts applications.

この章では Struts Web アプリケーションのビューの表示を行えるように、 VelocityViewServlet を設定する基本的なセットアップ方法を説明します。

Setup is almost identical to the standard VelocityViewServlet installation, please review that for more details. The extended VelocityLayoutServlet, or any custom extension, can also be used with Struts. (That particular servlet adds the ability to reuse shared html layout across multiple pages.)

セットアップの手順は普通の VelocityViewServlet のインストールとだいたい一緒です。 より詳細については見直しておいてください。 拡張したものである VelocityLayoutServlet や、 他のカスタム実装も Struts で使用することができます。 (このサーブレットは、 html レイアウトを複数のページで共有し、 再利用する機能が加えられています。)

Steps by step:

ステップバイステップ:

  1. velocity-tools-x.x.jar which contains the VelocityStruts and VelocityView classes must be added to the WEB-INF/lib directory.
  2. VelocityViewServlet needs to be installed into the servlet container (web.xml) so it can handle all request for *.vm files.
  3. velocity.properties configuration file must be added
  4. toolbox.xml file must be added, and mappings must be setup for the standard tools which expose the Struts objects to the template. (sample toolbox.xml file below)
  1. velocity-tools-x.x.jar は VelocityStruts と VelocityView のクラス群を含んでいるものであり、 WEB-INF/lib に配置します。
  2. *.vm ファイルへのリクエストを処理する VelocityViewServlet を、 サーブレットコンテナにインストールする (web.xml への記述) 必要があります。
  3. 設定ファイル velocity.properties を追加する必要があります。
  4. toolbox.xml ファイルを追加し、 Struts オブジェクトをテンプレートから利用できるようにするための、 標準ツールのマッピングをセットアップします。 (toolbox.xml ファイルのサンプルが下にあります。)

And that's all there is to it!

これで全部です!

At this point, it should be possible to change a Struts ActionMapping to 'forward' to a *.vm file placed in the webapp root directory and have it be displayed!

ここまで終われば、 Struts ActionMapping の 'forward' を Web アプリケーションのルートディレクトリに配置されている *.vm ファイルへ変更するすることで、 それを表示することが可能となっているはずです!

toolbox.xml


<?xml version="1.0"?>

<toolbox>
  <tool>
     <key>link</key>
     <scope>request</scope>
     <class>org.apache.velocity.tools.struts.StrutsLinkTool</class>
  </tool>
  <tool>
     <key>msg</key>
     <scope>request</scope>
     <class>org.apache.velocity.tools.struts.MessageTool</class>
  </tool>
  <tool>
     <key>errors</key>
     <scope>request</scope>
     <class>org.apache.velocity.tools.struts.ErrorsTool</class>
  </tool>
  <tool>
     <key>form</key>
     <scope>request</scope>
     <class>org.apache.velocity.tools.struts.FormTool</class>
  </tool>
  <tool>
     <key>tiles</key>
     <scope>request</scope>
     <class>org.apache.velocity.tools.struts.TilesTool</class>
  </tool>
  <tool>
     <key>validator</key>
     <scope>request</scope>
     <class>org.apache.velocity.tools.struts.ValidatorTool</class>
  </tool>
</toolbox>

ビューの表示
       

This section introduces you to the key concepts of rendering the view with Velocity in a Struts application.

この章では、 Struts アプリケーションで Velocity を利用してビューを表示させる際の概念の手ほどきを行います。

Velocity テンプレート言語
       

Velocity is a template engine implemented in Java. Velocity templates typically are HTML pages with embedded scripts (although Velocity has been used for many other application scenarios). Scripts are written in the Velocity Template Language (VTL). Following is a simple example of a HTML view with embedded VTL statements:

Velocity は Java で実装されたテンプレートエンジンです。 Velocity テンプレートは、 主に埋め込みスクリプト入りの HTML ページです (Velocity は他の多くのアプリケーションシナリオのために使用されてもいますが)。 スクリプトは Velocity テンプレート言語 (VTL) で記述されます。 下記は VTL ステートメントを埋め込んだ HTML のシンプルな例です:


<HTML>
<BODY>
    <h2>Order Confirmation</h2>

    <h3>Delivery Adress:</h3><br>
    Name: $customer.name<br>
    Street: $customer.street<br>
    City: $customer.zip $customer.city

    <h3>Ordered Items</h3><br>
    <table>
    #foreach( $item in $order.items )
        <tr>
            <td>$item.quantity</td>
            <td>$item.description</td>
        </tr>
    #end
    </table>
</body>
</html>

<HTML>
<BODY>
    <h2>注文の確認</h2>

    <h3>送付先住所:</h3><br>
    名前: $customer.name<br>
    番地: $customer.street<br>
    市: $customer.zip $customer.city

    <h3>注文の品</h3><br>
    <table>
    #foreach( $item in $order.items )
        <tr>
            <td>$item.quantity</td>
            <td>$item.description</td>
        </tr>
    #end
    </table>
</body>
</html>

When processed this will produce output similar to the following.

処理後、下記のような出力となります。


<HTML>
<BODY>
    <h2>Order Confirmation</h2>

    <h3>Delivery Adress:</h3><br>
    Name: Peter Pan<br>
    Street: Crain St. 10<br>
    City: 60201 Evanston IL

    <h3>Ordered Items</h3><br>
    <table>
        <tr>
            <td>1</td>
            <td>Hair Dryer, Philips, 1000W, white</td>
        </tr>
        <tr>
            <td>1</td>
            <td>Kitchen Mixer, Betty Bossy, 240W, black</td>
        </tr>
    </table>
</body>
</html>

<HTML>
<BODY>
    <h2>注文の確認</h2>

    <h3>送付先住所:</h3><br>
    名前: Peter Pan<br>
    番地: Crain St. 10<br>
    市: 60201 Evanston IL

    <h3>注文の品</h3><br>
    <table>
        <tr>
            <td>1</td>
            <td>Hair Dryer, Philips, 1000W, white</td>
        </tr>
        <tr>
            <td>1</td>
            <td>Kitchen Mixer, Betty Bossy, 240W, black</td>
        </tr>
    </table>
</body>
</html>

VTL has been designed from the ground up as a simple template language for view designers. With less than ten supported directives it is easy to learn. In fact, most people are up and productive within less than a day.

VTL はビューデザイナを意識したシンプルなテンプレートスクリプト言語として、 最初から最後まで設計されました。 サポートされている指示子は10未満であり、習得することが容易です。 実際、ほとんどの人々は1日以内に習得して生産的になっています。

Velocity does not allow Java scriptlets, which helps enforce a strict MVC separation.

Velocity は Java のスクリプトレットを許容せず、 明確な MVC の線引きを行います。

Please consult the following two documents for an in-depth coverage of VTL:

VTL の適用範囲の詳細については次の2つのドキュメントを調べてください:


データを渡す
       

The main purpose of Velocity in a web application is typically to merge HTML templates with dynamic application data to generate dynamic views. An essential aspect of Velocity is therefore the mechanism that allows the application controller (in MVC speak) to expose data to the template.

Web アプリケーションにおいての Velocity の主要な目的は、 動的なビューを生成するため、 HTML テンプレートと動的なアプリケーションデータをマージすることです。 Velocity の最も重要な点は、アプリケーションの (MVCでいうところの) コントローラが、 アプリケーションデータをテンプレートへ渡すことを可能にするメカニズムなのです。

It is important to understand the relationship between a Struts-based application and the Velocity template servlet. Both are simply Java Servlets which perform a specific task.

Struts ベースのアプリケーションと Velocity テンプレートサーブレットの関係を理解することが重要です。 両方とも、特定の処理を行うシンプルな Java サーブレットです。

Requests to the Struts application are processed, application data is manipulated and eventually all data and control is forwarded to a View layer.

Struts アプリケーションへのリクエストが処理され、 アプリケーションデータが処理され、 最終的には全てのデータと制御はビューレイヤにフォワードされます。

The Velocity servlet in this case is responsible for merging the provided application data with a template to produce HTML output.

このケースでは、 Velocity サーブレットは HTML 出力のために、 渡されたアプリケーションとテンプレートをマージする役割を持ちます。

We should note that the Velocity servlet is not exclusively tied to the Struts application. It can serve requests from web clients directly or any other servlet application as well. Technically, the Struts application hands over a request to Velocity through the forward method of javax.servlet.RequestDispatcher.

Velocity サーブレットは Struts アプリケーションのみと関係しているわけではないことを覚えておいてください。 Web クライアントからの直接のリクエストを受け付けることができますし、 他のどんなサーブレットアプリケーションとも同様にできます。 技術的なことを言うと、 Struts はリクエストを javax.servlet.RequestDispatcherforward メソッドを用いて Velocity へ渡します。

Application data is passed from the Struts servlet to the Velocity servlet as attributes of either the servlet request, session or context.

アプリケーションデータは、サーブレットリクエスト、サーブレットセッション、 サーブレットコンテキストのいずれかの属性として Struts サーブレットから Velocity サーブレットへ渡されます。

Therefore a developer simply needs to set an attribute to pass data to the View layer and make that data available for the template. For example:

したがって、開発者はビューレイヤにデータを渡すために属性を設定し、 そのデータをテンプレートから利用できるようにする必要があります。 例:

request.setAttribute("Customer", CustomerObj); Whatever public methods are available on the CustomerObj instance will be made available to the template designer. Assuming there is a public getName() method, they may for example write: $Customer.name or $Customer.getName().

request.setAttribute("Customer", CustomerObj); CustomerObj インスタンスの持つ全ての public メソッドがテンプレートデザイナへ提供され、 利用することができます。 public の getName() メソッドがあると仮定した場合、 このように書くことができます: $Customer.name または $Customer.getName() 。

There is a heirarchy to the objects exposed to the template designer. For instance, if you have set an attribute "foo" in both the session and the request,

テンプレートデザイナへ渡されるオブジェクトには優先順位があります。 例えば、セッションとリクエスト両方に "foo" という属性があった場合、

request.setAttribute("foo", "request foo");
session.setAttribute("foo", "session foo");

then the request attribute will take priority, and using

リクエストの属性が優先され、テンプレート内で

$foo

in the template will give you

を使用しますと次が得られます。

request foo

Priority is given in the following order:

  1. Tools specified in the toolbox.xml (e.g. $link, $tiles, etc.)
  2. The servlet classes (e.g. $request, $response, $session, $application)
  3. References set locally within the template
  4. Request attributes
  5. Session attributes
  6. Servlet context (application) attributes

優先順位は以下の順番で与えられます:

  1. toolbox.xml にて指定されたツール(e.g. $link, $tiles, etc.)
  2. サーブレットのクラス (e.g. $request, $response, $session, $application)
  3. テンプレート内でローカルにセットされたリファレンス
  4. リクエストの属性
  5. セッションの属性
  6. サーブレットコンテキスト (application) の属性

This heirarchy allows the developer to reserve control of key references (for tools and servlet resources) from the template designer and allows for values to be set at various servlet scopes in a manner similar to working with JSP and Struts.

この優先順位によって開発者はテンプレートデザイナから重要なリファレンス (ツールやサーブレットリソース) の制御を確保できます。 また、JSP と Struts で開発するのと同じように、 サーブレットのさまざまなスコープに値をセットできるようになります。


サーブレットリソースへのアクセス
       

VelocityStruts automatically populates the context with the following objects of the Servlet API on each template processing request:

VelocityStruts は、各テンプレート処理リクエストごとに、自動的に Servlet API の以下のオブジェクトをコンテキストを設定します:

Context Key Class Remarks
$request javax.servlet.http.HttpServletRequest the current servlet request
$session javax.servlet.http.HttpSession the current session, if one exists
$application javax.servlet.ServletContext the servlet context
$response javax.servlet.http.HttpServletResponse the current servlet response
コンテキストキー クラス 備考
$request javax.servlet.http.HttpServletRequest 処理中のサーブレットリクエスト
$session javax.servlet.http.HttpSession もし存在する場合、処理中のセッション
$application javax.servlet.ServletContext サーブレットコンテキスト
$response javax.servlet.http.HttpServletResponse 処理中のサーブレットレスポンス

The following examples illustrates how servlet resources are accessed from within Velocity template. The example renders the list of HTTP header fields of the current servlet request. In the same way, any public method of the above listed objects can be called from within templates:

以下の例では、サーブレットのリソースが Velocity テンプレートからどのようにアクセスされるかを示します。 この例は、処理中のサーブレットリクエストの HTTP ヘッダーのフィールドのリストを表示します。 同じ方法で、上記にリストされているオブジェクトのどんな public メソッドでもテンプレートの内部から呼ぶことができます:

#foreach( $header in $request.HeaderNames )
  <b>$header:</b> $request.getHeader($header)<br>
#end

The resulting output is something like this:

出力結果はこのようになります:

Referer: http://localhost:8080/struts/doc/examples.html
Connection: Keep-Alive
User-Agent: Mozilla/4.79 [en] (Windows NT 5.0; U)
Pragma: no-cache
Host: localhost:8080
Accept: image/gif, image/jpeg, image/pjpeg, image/png, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Cookie: JSESSIONID=aaaecXd7bnLPAr

Strutsフレームワークリソースへのアクセス
       

The Struts framework provides resources that are useful to template designers. These include logical names for physical resources, internationalized messages, error handling, form handling, etc. The interesting question is now how template designers can gain access these framework resources. In the JSP world, a set of custom tag libraries provide template designers access to the Struts framework resources. In the Velocity world, the equivalent of the JSP custom tag libraries are view tools. View tools are a very simple concept. They are Java objects with public methods that are put into the Velocity context. Tools are accessed by key and allows template designers to call on their public methods.

Struts フレームワークは、 テンプレートデザイナにとって役立つリソースを提供します。 これらは、物理的なリソースの論理名、国際化されたメッセージ、 エラーハンドリング、フォームハンドリングなどを含んでいます。 気になるところとしては、 テンプレートデザイナがどのようにフレームワークのリソースへアクセスすることができるかでしょう。 JSP では、一連のカスタムタグライブラリが、テンプレートデザイナに Struts フレームワークのリソースへのアクセスを提供します。 Velocity では、 JSP カスタムタグライブラリと等価なものとして ビューツールがあります。 ビューツールは非常にシンプルなものです。 それらは Velocity コンテキストの中に格納される、 public メソッドを持つ Java オブジェクトです。 ツールはキーによってアクセスされ、 テンプレートデザイナはそれらの public メソッドを呼び出すことができます。

A set of seven view tools is included with VelocityStruts that provide template designers access to Struts framework resources. These seven view tools essentially achieve the integration between Struts and Velocity and they can be considered the core of this project.

テンプレートデザイナーに Struts フレームワークのリソースへのアクセスを提供する 7つのビューツールが VelocityStruts には含まれています。 これらの7つのビューツールは、 Struts と Velocity 間の統合を実現する、 このプロジェクトのコアとなる部分です。

Context Key Class Remarks
$text MessageTool Provides access to the Struts application resources for internationalized text.
$errors ErrorsTool Provides methods to check for and output Struts error messages.
$messages ActionMessagesTool Provides methods to work with Struts action messages.
$link StrutsLinkTool Provides methods to work with URIs.
$form FormTool Provides miscellaneous methods to work with forms and form beans in the context of Struts applications.
$tiles TilesTool Provides miscellaneous methods to work with Tiles in the context of Struts applications.
$validator ValidatorTool Provides methods to dynamically generate javascript validation in the context of Struts applications.
Note: The shown keys are the recommended values. They can be changed in the configuration.
コンテキストキー クラス 備考
$text MessageTool 国際化されたテキストのための Struts のアプリケーションリソースへのアクセスを提供します。
$errors ErrorsTool Struts のエラーメッセージをチェックし、出力するためのメソッドを提供します。
$messages ActionMessagesTool Struts のアクションメッセージに関するメソッドを提供します。
$link StrutsLinkTool URIに関するメソッドを提供します。
$form FormTool フォームや、Struts アプリケーションのコンテキスト内のフォームビーンに関するさまざまなメソッドを提供します。
$tiles TilesTool Struts アプリケーションのコンテキスト内でTiles に関するさまざまなメソッドを提供します。
$validator ValidatorTool Struts アプリケーションのコンテキスト内で動的にjavascript によるバリデーションを生成するメソッドを提供します。
注意: ここにあるキーは推奨されている値です。 設定で変更することができます。

The following example illustrates some of the features of the MessageTool for working with internationalized messages. For the example we assume that the Struts message resources contain the following two key=value pairs:

以下の例は、国際化メッセージに関する処理を行う MessageTool のいくつかの機能を示しています。 例では、 Struts のメッセージリソースに以下の key=value のペアを含んでいると仮定します:


title=Struts Example Application
test=This string has 4 replacement parameters: {1}, {2}, {3}, {4}

title=Struts Example Application
test=This string has 4 replacement parameters: {1}, {2}, {3}, {4}

Then, the following script...

以下のスクリプト...


$text.get("title")
$text.get("test", ["bear", "dog", "cat"])
$text.exists("tutle")
$text.getLocale()

..will produce this output:

..はこの出力を生成します:


Struts Example Application
This string has 4 replacement parameters: bear, dog, cat, {4}
false
en

Struts Example Application
This string has 4 replacement parameters: bear, dog, cat, {4}
false
en

Please see the Tool Reference Documentation for more details about the view tools. Furthermore, the Velocity/Struts example application comes with several working examples that show how these tools are used.

ビューツールに関する詳細は、 ツールリファレンスドキュメント を参照してください。 また、 Velocity/Struts サンプルアプリケーション には、 これらのツールがどのように使用されるかを示す、 いくつかの例が付属しています。




[訳注: この文書は Shinobu Kawai 野瀬直樹 が翻訳しました。 日本語訳に対するコメントがあれば、report@jajakarta.orgに送って下さい。]
Copyright © 1999-2003, Apache Software Foundation