FreeMarkerテンプレートエンジン【Velocityよりずっとまし】

このエントリーをはてなブックマークに追加
11
内容:
FreeMarkerは、Java用としては現時点で最強のテンプレートシステム。
Velocityなんか目じゃないぐらい、簡単、高機能、高性能(最大で約2倍速い)。
WebWork2もVelocityからFreeMarkerに乗り換えた。

本家
http://freemarker.sourceforge.net/
特徴
http://freemarker.sourceforge.net/features.html
Velocityとの比較
http://freemarker.sourceforge.net/fmVsVel.html
ベンチマークやら機能比較やら
http://doikun.cocolog-nifty.com/dowilog/cat1515211/index.html

駄スレだが許せ。
2nobodyさん:2005/07/05(火) 09:45:56 ID:???
ハッシュドビーフ
3nobodyさん:2005/07/05(火) 15:37:11 ID:???
Velocityとの比較を見てると、Velocityってそんなこともできなかったのねと思ったりするが、なぜこの板なのかという疑問は解消できない。
4What is FreeMarker?:2005/07/08(金) 01:35:41 ID:???
What is FreeMarker?

FreeMarkerって何よ?

FreeMarker is a "template engine"; a generic tool to generate text
output (anything from HTML to autogenerated source code) based on
templates. It's a Java package, a class library for Java programmers.
It's not an application for end-users in itself, but something that
programmers can embed into their products.

FreeMarkerとは、テンプレートに基づいてテキスト出力(HTMLからソースコード
まで何でも)を生成する汎用のツール、つまり「テンプレートエンジン」です。
FreeMarkerはJavaパッケージ(Javaプログラマーのためのクラスライブラリ)で
す。それ自体はエンドユーザのためのアプリケーションではなく、プログラマー
が製品に埋め込んで使用するものです。
5nobodyさん:2005/07/08(金) 01:42:19 ID:???
FreeMarker is designed to be practical for the generation of HTML Web
pages, particularly by servlet-based applications following the MVC
(Model View Controller) pattern. The idea behind using the MVC pattern
for dynamic Web pages is that you separate the designers (HTML authors)
from the programmers. Everybody works on what they are good at.
Designers can change the appearance of a page without programmers having
to change or recompile code, because the application logic (Java
programs) and page design (FreeMarker templates) are separated.
Templates do not become polluted with complex program fragments. This
separation is useful even for projects where the programmer and the HMTL
page author is the same person, since it helps keeping the application
clear and easily maintainable.

FreeMarkerは、特にMVC(モデル、ビュー、コントローラ)パターンにしたがっ
たServletベースのアプリケーションが、HTML Webページを生成するのに実用的
であるよう設計されています。動的なWebページにおいてMVCパターンを使う理由
は、デザイナー(HTMLを書く人)とプログラマーとを分けるためです。人にはそ
れぞれ得意なことがあり、それで仕事をします。〔訳注:FreeMarkerを使えば〕
アプリケーションロジック(Javaプログラム)とページデザイン(FreeMarkerテ
ンプレート)とが分離されるため、デザイナーはページの外見を変更するときに、
プログラマーに変更させたり再コンパイルさせたりする必要がありません。テン
プレートは複雑なプログラム片によって汚染されることがありません。このよう
な分離は、プログラマーとHTMLページ作成者とが同じ人間である場合でも有用で
す。なぜなら、分離によってアプリケーションをきれいに保ち、メンテナンスが
容易になるからです。
6nobodyさん:2005/07/08(金) 01:50:35 ID:???
Although FreeMarker has some programming capabilities, it is not a
full-blown programming language like PHP. Instead, Java programs prepare
the data to be displayed, and FreeMarker just generates textual pages
that display the prepared data using templates.

FreeMarkerはいくらかのプログラミング機能を持っていますが、PHPのような本
格的なプログラミング言語ではありません。表示すべきデータはJavaプログラム
で用意し、FreeMarkerはそのデータからテンプレートを用いてテキストベースの
ページを生成するだけです。

Overview of FreeMarker workflow

FreeMarkerによるワークフローの概観

〔訳注:ここで画像〕
ttp://freemarker.sourceforge.net/images/overview.png
7nobodyさん:2005/07/08(金) 01:57:39 ID:???
FreeMarker is not a Web application framework. It is suitable for a
component in a Web application framework, but the FreeMarker engine
itself knows nothing about HTTP or servlets. It simply generates text.
As such, it is perfectly usable in non-web application environments as
well. Note, however, that we provide out-of-the-box solutions for using
FreeMarker as the view component of Model 2 frameworks (e.g. Struts),
which also let you use JSP taglibs in the templates.

FreeMarkerはWebアプリケーションフレームワークではなく、Webアプリケーショ
ンフレームワークの1コンポーネントとして存在するのが適切です。しかし
FreeMarkerエンジン自体はHTTPやServletとは何の関係もありません。エンジン
は単にテキストを生成するだけですので、Webではないアプリケーション環境で
も同じように役に立ちます。またFreeMarkerは素の状態でも、テンプレート中に
JSPタグライブラリを使うようなModel2フレームワーク(例:Struts)のビュー
コンポーネントとして使用することができます。
8nobodyさん:2005/07/08(金) 02:02:53 ID:???
OSI Certified FreeMarker is Free, with BSD-style license. It is OSI
Certified Open Source Software. OSI Certified is a certification mark of
the Open Source Initiative.

OSIはFreeMarkerをBSDスタイルのライセンスとともにFreeだと認定しました。
FreeMarkerはOSI認定のオープンソースソフトウェアです。OSI認定はオープンソ
ースイニシアチブの認定マークです。

Read more feature highlights.

機能の詳細についてはこちらをご覧ください。

ttp://freemarker.sourceforge.net/features.html

-- 以上 --

もとねた: http://freemarker.sourceforge.net/

けっこう意訳(超訳?)だけど、おかしな点があったら指摘おねがい。
9nobodyさん:2005/07/10(日) 02:10:56 ID:???
ただでさえWebWork2の露出度が低いのにFreeMakerが流行るとは思えん。嫌いじゃないんだけどね。
プロジェクトに入れたくてもシラネとかいわれるしぐぐってもあまり日本語の情報がないので結局Struts + JSPあたりになっちゃうんだよなぁ。
10FreeMarker vs. Velocity:2005/07/13(水) 01:39:12 ID:???
FreeMarker vs. Velocity
ttp://freemarker.sourceforge.net/fmVsVel.html

Velocity is a simpler, more lightweight tool. Thus, it does not address
many tasks that FreeMarker does, and its template language is less
powerful in general, but it is simpler.

Velocityはシンプルでとても軽量なツールです。しかし、FreeMarkerが解決して
いる多くの課題を、Velocityは解決できていません。またVelocityのテンプレー
ト言語はシンプルですが、一般的にいってあまり強力ではありません。
11FreeMarker vs. Velocity:2005/07/13(水) 01:41:40 ID:8E2e9Zlo
However, we think that for most applications, working with FreeMarker is
simpler than working with Velocity, since with Velocity you have to find
custom tools and find various other workarounds to solve typical
template authoring tasks again and again, and you end up losing much
more time in the long run than you have won on the quick starting. Also,
the result of solving something with tools and workarounds is most
probably not as terse or efficient as the solution in the engine core.

しかしながら、ほとんどのアプリケーションにおいて、VelocityよりFreeMarker
を使うほうがより簡単だと我々は考えています。なぜなら、テンプレートを記述
するうえでの典型的な課題を解決するのに、Velocityでは専用のツールや他のワ
ークアラウンド〔訳注:うまい解決法ではないがとりあえず問題を解決してくれ
る方法のこと〕を探してくる必要があります。またほとんどの場合において、ツ
ールやワークアラウンドによる解決は、テンプレートエンジンによる解決ほどに
は簡単明瞭でもなければ効率的でもありません。
12FreeMarker vs. Velocity:2005/07/13(水) 01:42:46 ID:???
Furthermore, according to Velocity list archives, the workaround often
means extensive direct usage of Java object methods in the Velocity
template (this violates the idea of simple, non-programmer HTML-designer
friendly templates) or the movement of presentation tasks into the
controller code (this violates the MVC idea). And, after all, if you use
FreeMarker only for what Velocity can do out-of-the-box, it is as simple
as Velocity.

もっといえば、Velocityリストアーカイブ〔訳注:メーリングリストのアーカ
イブのこと?〕によれば、こういったワークアラウンドはたいてい、Velocity
テンプレートの中でJavaオブジェクトのメソッドを広範囲に直接利用することに
なります(このことは、シンプルで、かつプログラマーではないHTMLデザイナー
にもやさしいテンプレートという理念に反します)。結局のところ、Velocityが
素の状態でできることについてのみFreeMarkerを使うのであれば、FreeMarkerは
Velocityと同じぐらいシンプルです。
13FreeMarker vs. Velocity:2005/07/13(水) 01:44:30 ID:???
An advantage of Velocity over FreeMarker is that Velocity has wider
third party support and a much larger user community. However, you might
need less support for FreeMarker because instead of creating and
discussing workarounds you might often be able to simply use FreeMarker
standard features. And in case you have difficulties there are of course
active web forums and mailing lists. Moreover, since with FreeMarker you
can use Model-2 frameworks as Struts and any JSP tag libraries
out-of-the-box, perhaps third-party support is not a that big problem if
you are in the servlet segment. Also, more and more servlet frameworks
adapt FreeMarker as their view layer, next to JSP and Velocity.

VelocityがFreeMarkerに比べて勝っている点は、サードパーティが広くサポート
していることと、ユーザコミュニティが非常に大きいことです。しかしながら、
ワークアラウンドを作り出したり議論したりするかわりに、単にFreeMarkerの標
準機能を使うだけで済むことが多いので、FreeMarkerについてはサポートがあま
り必要ではありません。もちろん、それでも問題となることがあれば、活発な
Webフォーラムやメーリングリストがあります(ので質問できます)。もっとい
えばFreeMarkerは素の状態でも、StrutsのようなMVCモデル2に基づいたフレーム
ワークや、あるいはJSPタグライブラリを使うことができます。そのため、
Servletまわりでいえば、サードパーティによるサポートは大きな問題ではない
可能性もあります。また多くのサーブレットフレームワークが、JSPやVelocity
に続いてビュー層にFreeMarkerを採用しています。
14FreeMarker vs. Velocity:2005/07/13(水) 01:45:29 ID:???
There are other parameters that should be considered when you compare
tools, like code quality and documentation quality. But of course, we as
the authors of the product should not say anything about this. It is up
to the users to judge.

ツールを比較する際は、コードやドキュメントの品質など考慮すべき点が他にも存在します。
もちろん、我々はFreeMarkerの作者として、そういった点にも言及しなければなりません。
判断するのはユーザです。
15FreeMarker vs. Velocity:2005/07/14(木) 02:39:48 ID:qC0D73t6
Feature comparison sheet

機能比較シート

Here's a quick, non-comprehensive listing of things you can do with
FreeMarker out of the box, and which you can not do with Velocity (or,
you can but only with nontrivial workarounds). This list is originally
based on a comparison with Velocity 1.2. Contact us for change
suggestions.

これは簡単に作成したものであり包括的なものではありませんが、FreeMarkerが
素の状態でできることと、Velocityではできないこと(またはVelocityでもでき
るんだけど自明でないワークアラウンドが必要となること)の比較リストです。
このリストはVelocity 1.2に基づいています。変更すべき点があれば我々に連絡
してください。
16FreeMarker vs. Velocity:2005/07/14(木) 02:40:24 ID:???
[ Number and date support ]
* You can perform arithmetic calculations and comparisons on arbitrary
number types, including the arbitrary-precision types, not just integers.
* You can compare and display (format) date/time values.

[ 数値と日付のサポート ]
* 任意の数値型による算術計算と比較ができます。整数だけでなく、任意の精度の小数を扱うことができます。
* 日付や時刻を比較したり、書式を指定して表示することができます。
17FreeMarker vs. Velocity:2005/07/14(木) 02:40:55 ID:???
[ Internationalization ]
* You can format numbers locale-sensitively, based on a variety of
built-in and custom number-formatting patterns.
* You can format dates locale- and timezone-sensitively, based on
variety of built-in and custom date-formatting patterns.
* Identifiers (variable names) can contain non-English letters like
accented letters, Arabic letters, Chinese letters, etc.

[ 国際化 ]
* 数値を、ロケールに従った書式に変換できます。
 書式のパターンは多くのものがあらかじめ組み込まれており、またカスタムで作成することもできます。
* 日付を、ロケールまたはタイムゾーンに従った書式に変換できます。
 書式のパターンは多くのものがあらかじめ組み込まれており、またカスタムで作成することもできます。
* 識別子(変数名)にアルファベット以外の文字を使うことができます。
 例えばアクセントつき文字、アラビア文字、漢字などが使用可能です。
18FreeMarker vs. Velocity:2005/07/14(木) 02:41:26 ID:???
[ Loop handling ]
* You can break out of loops.
* You can access control variables of outer loops from bodies of inner loops.
* You can test whether you are in the last iteration of the loop.

[ ループハンドリング ]
* breakでループを抜けることができます。
* 内部のループから、外側のループ変数にアクセスしたり変更することができます。
* ループの最後であるかどうかを判定することができます。
19FreeMarker vs. Velocity:2005/07/14(木) 02:41:45 ID:???
[ Array handling on the template language level ]
* You can access array elements, both primitive and non-primitive by index using the familiar [i] syntax.
* You can query the length of an array.

[ テンプレート言語レベルでの配列の扱い ]
* プリミティブか非プリミティブかに関わらず、使い慣れた「[i]」というシンタックスで配列の要素にアクセスできます。
* 配列の長さを調べることができます。
20FreeMarker vs. Velocity:2005/07/14(木) 02:42:22 ID:???
[ Macros ]
* Macro invocations can pass parameters either by position or by name.
* Macro parameters can have default values which are effective when the parameter is omitted on invocation.
* Macro invocations can have a nested body (<@myMacro>body</@myMacro>) that can be called by the macro for processing.
* Macros are plain variables, so you can select the macro to execute based on an expression, or pass a macro to another macro as parameter.
* Invoke a macro that is defined later in the template.
* Local variables in macros, and recursive invocation of macros. In Velocity it is now possible with the currently (Feb. 2005) not officially documented #local function.

[ マクロ ]
* マクロの呼び出しで引数を渡すことができます。また引数は、位置による指定も、名前による指定もできます。
* マクロの引数はデフォルト値を指定できます。マクロ呼び出し時に引数が指定されない場合は、デフォルト値が使用されます。
* マクロの呼び出しでは本体をネストさせることが可能です(<@myMacro>本体</@myMacro>)。
 ネストした本体はマクロによって処理されます。
* マクロは通常の変数です〔訳注:マクロがfirst class objectであるということ。多分。〕。
 そのため、実行するマクロを式に基づいて切り替えたり、マクロを別のマクロに引数として渡すことができます。
* マクロをテンプレート中で定義するまえに呼び出すことができます。
* マクロ中でローカル変数が使用できます。またマクロを再帰的に呼び出すことができます。
 Velocityでも #local という機能でできるようになったようです(2005年2月現在)。ただし公式にはドキュメント化されていません。
21FreeMarker vs. Velocity:2005/07/14(木) 02:42:51 ID:???
[ Name-spaces ]
* You can use multiple name-spaces for variables. This is invaluable when you build "macro libraries",
because you can prevent name collisions with application specific variables or with variables of other macro libraries.

[ 名前空間 ]
* 変数の名前空間を複数使用することができます。
 この機能により、アプリケーション固有の変数や他のマクロが使用する変数との名前の衝突を防ぐことができるため、
 "マクロライブラリ"を作るときはたいへん重宝します。
22FreeMarker vs. Velocity:2005/07/14(木) 02:43:14 ID:???
[ Java-independent string, list, and map manipulations with built-in functions/operators ]
* You can turn a string upper-, lower-, or title-case, turn
upper-/lowercase only the first letter, convert (escape) the string to
HTML, XML, or RTF, extract substrings, split strings, query string
length, find/replace substring, ...etc.
* Access elements of lists by index, extract sublists, concatenate lists,
query size of a lists, sort lists.
* Access map elements by variable key, check if the map is empty, obtain
the key or value list.

[ Javaと独立した、文字列やリストやマップを操作するための組み込みの関数や演算子 ]
* 文字列を大文字/小文字にしたり、title-caseにしたり〔訳注:Camel Caseのこと?〕、
 最初の文字だけを大文字/小文字にしたり、HTMLやXMLやRTF用に特殊文字をエスケープしたり、
 部分文字列を取り出したり、分割したり、長さを調べたり、部分文字列を検索したり置き換えたり、
 ・・・などができます。
* リストの要素に添え字でアクセスしたり、部分リストを取り出したり、複数のリストを結合したり、
 長さを調べたり、ソートしたりできます。
* マップの要素にキーでアクセスしたり、空かどうか調べたり、キーや値をリストとして取り出したりできます。
23FreeMarker vs. Velocity:2005/07/14(木) 03:10:43 ID:???
[ Expose typos and other mistakes in template ]
* When you try to access an undefined variable, FreeMarker will not accept that silently.
You can configure FreeMarker to stop template rendering with an error message, or skip the wrong part.
In either case, FreeMarker will log the problem, so it does not remain hidden.
* FreeMarker will throw an exception if you mistype a directive name, and will not print the statement
silently to the output (unless you use the now deprecated non-strict syntax).

[ テンプレート中のTypoや間違いを指摘 ]
* 未定義の変数にアクセスした場合、FreeMarkerは黙ったままそれを許すことはしません。
 FreeMarkerの設定を変更することで、間違いが合った場合はテンプレートのレンダリングを中止して
 エラーメッセージを表示させることも、また間違った箇所をスキップさせることもできます。
 どちらの場合でも、FreeMarkerは問題があればそれをログに残すので、エラーが隠されたままになることはありません。
* ディレクティブ名を間違えたとき、FreeMarkerは例外を発生します。そのため、黙って文を出力に表示することはありません
 (厳密ではない構文を使った場合はこの限りではありませんが、現在では廃止予定となっています)。
24FreeMarker vs. Velocity:2005/07/14(木) 03:11:15 ID:???
[ Advanced rendering control ]
* You can enclose a block of template in a set of tags that will cause it to apply
HTML escaping or XML escaping (or any other transformation you can express as a
FreeMarker expression for that matter) on all interpolations (${foo}) in the block.
* FreeMarker has transforms, which are blocks of template that when rendered, go through a
transforming filter. Built-in transforms include whitespace compressor, HTML and XML escaper.
Best of all, you can implement your own transformers as well (i.e. if you generate
Java source code, you can write a Java code pretty-printer transform and insert it
into the template). Naturally, transforms can be nested.
* You can explicitly flush the output writer with a built-in flush-directive.
* You can stop the rendering with a built-in stop-directive.

[ 高度なレンダリングコントロール ]
* テンプレート中のあるブロックをタグで囲んで範囲指定し、その中に含まれるすべての
 Interporation(${foo})に対してHTMLエスケープやXMLエスケープ(あるいはFreeMarkerの
 式として表現できる、ほかのどんなTransformation)の対象とすることができます。
* FreeMarkerはTtransformという機能があります。これは、テンプレート中のブロックを
 レンダリングされるときに変換フィルターを通す機能です。
 組み込み済みのTransformとしては、連続するホワイトスペースを圧縮したり、
 HTMLやXMLの特殊文字をエスケープしたりするものがあります。
 また独自の変換を作成することもできます(例えばJavaのソースコードを生成したときに、
 そのコードをきれいにフォーマットして出力するようなTransformを作成することができます)。
 当然ですが、Transformはネストさせることができます。
* 組み込みのflushディレクティブを使って、出力用writerを明示的にフラッシュすることができます。
* 組み込みのstopディレクティブを使って、レンダリングを止めることができます。
25FreeMarker vs. Velocity:2005/07/14(木) 03:11:46 ID:???
]
* Beside the usual string, number, and boolean literals you can define
list and map literals as well inside templates.
* There is a support for all Java string literal escapes: \b, \t, \n, \f, \r,
\", \', \\, also we support \xXXXX to specify characters with their UNICODE code.

[ リテラル ]
* 通常の文字列リテラルや数値リテラルや真偽値リテラルと同様に、リストやマップのリテラルを
 定義してテンプレート中に含めることができます。
* Javaの文字列で使用できるエスケープ文字はすべて使用可能です:\b、\t、\n、\f、\r、
 \"、\'、\\、およびユニコードの文字を表す\xXXXXが使えます。
26FreeMarker vs. Velocity:2005/07/14(木) 03:12:24 ID:???
[ Advanced white-space removal ]
* FreeMarker consistently removes white-space (spaces, tabs and line-break)
from lines that contain non-outputting FreeMarker tags only,
thus eliminates most annoying, obviously superfluous white-space.
* There are directives to explicitly trim lines from needless white-space,
just for the extreme cases, when white-space is a real problem.

[ 高度なホワイトスペース除去機能 ]
* FreeMarkerは、出力用ではないFreeMarkerタグのみを含む行から、ホワイトスペース
 (空白、タブ、改行)を取り除きます。これにより、いつも悩みの種となる、
 明らかに余計であるようなホワイトスペースはなくなります。
* 極端なケースですが、ホワイトスペースが現実の問題となった場合には、
 不必要なホワイトスペースを行から明示的に削除するディレクティブを使うこともできます。
27FreeMarker vs. Velocity:2005/07/14(木) 03:13:27 ID:???
[ Integration with other technologies ]
* You can use JSP custom tag libraries in templates.
* You can work directly on Python objects.

[ 他の技術との統合 ]
* JSPカスタムタグライブラリをテンプレート中で使用できます。
* Pythonオブジェクトを直接使用することもできます{{(まじで?)}}。
28FreeMarker vs. Velocity:2005/07/14(木) 03:16:13 ID:???
[ Powerful XML transformation capabilities ]
* As of version 2.3, FreeMarker has powerful new XML transformation capabilities
that make it a viable replacement for XSLT.
Though there have been some attempts to make Velocity more capable in this domain (i.e. DVSL)
Velocity is not really competitive in this regard.
In our view, it never will be unless certain improvements to the core engine are made,
such as support for macro libraries mapped to namespaces, and local variables in macros.
* See here for a more detailed comparison of FreeMarker and XSLT.
http://freemarker.sourceforge.net/fmVsXSLT.html

[ 強力なXML Transformation機能 ]
* バージョン2.3から、FreeMarkerは強力なXML Transformation機能を新しく持つようになりました。
 これにより、FreeMarkerによってXSLTを置き換えることが可能となりました。
 今までにも、この用途のためにVelocityをより高機能にしようとする試みはありましたが(DVSLなど)、
 Velocityは現実的な競争相手とはなりませんでした。我々の見解では、Velocityのコアエンジンに対して何らかの改良、
 例えば名前空間にマッピングしたマクロライブラリのサポートやマクロ中のローカル変数のサポートなどがなされない限り、
 VelocityがFreeMacroの競争相手となることは決してないでしょう。
* FreeMarkerとXSLTのより詳細な比較はこちらをご覧ください。
 http://freemarker.sourceforge.net/fmVsXSLT.html
29FreeMarker vs. Velocity:2005/07/14(木) 03:17:05 ID:???
[ Advanced template metaprogramming: ]
* You can capture the output of an arbitrary part of the template into a context variable.
* You can interpret arbitrary context variable as if it were a template definition.
* You can imagine what can you do when you combine the two...

[ 高度なテンプレートメタプログラミング ]
* テンプレートにおける任意の箇所の出力を捕捉して、コンテキスト変数に格納することができます。
* コンテキスト変数を、まるでテンプレートの定義であるかのように実行することができます。
* この2つを組み合わせれば、ほんとうにいろんなことができるでしょう。
30nobodyさん:2005/07/14(木) 03:19:17 ID:???

以上

元ネタ:『FreeMarker vs. Velocity』
http://freemarker.sourceforge.net/fmVsVel.html


眠い・・・
31nobodyさん:2005/07/14(木) 06:16:23 ID:wfSMZtFw
すごいぞたった火の10日でベロスレの半分まで到達だ
32nobodyさん:2005/07/14(木) 07:11:00 ID:???
読むやつがいるのかどうかという大問題があるのは、だまってたほうがいいのかな?
33nobodyさん:2005/09/07(水) 13:07:33 ID:???
・{}を省略させない
・未定義変数への対処
この二つは魅力を感じる。

マクロとか高機能化のトピックについては
テンプレートなんだからそもそもイラネと思うのが個人的な意見。
<#コマンド> な形式もタイプ量増やすだけで好きになれん。
34nobodyさん:2005/10/08(土) 04:23:34 ID:VIiL/ldq
というか、開発者の品性が非常に糞。

VelocityのユーザーMLを2年ぐらい前から荒らしている。
何度注意しても聞かない。

ということで、仮に優れていても絶対に使わない。
35nobodyさん:2005/10/09(日) 19:37:12 ID:???
スレタイも厨臭いな。類友?
36nobodyさん:2005/10/09(日) 22:11:23 ID:???
VelocityのReferenceInsertionEventHandlerみたいなのは無いのか喃
37nobodyさん:2005/10/10(月) 03:46:09 ID:Ry1GejgF
>>35
Jonathan Revusky本人だったらテラワロス
38nobodyさん:2005/10/10(月) 04:46:16 ID:???
ホンニンデスガ、ナニカ?
39nobodyさん:2005/10/10(月) 08:19:09 ID:WP5DX+4F
>>38
ちょっとあなたは嘘はつくのはやめてください
Jonathanに訴えられますかもしれませんよ
それではいいですか?
40nobodyさん:2005/10/10(月) 13:22:35 ID:???
タマネギハタベレマセンガ、ナニカ?
41nobodyさん:2006/03/04(土) 12:39:05 ID:1IWI/HQO
また最近Jonathanが某MLに出没している。うざい。
42nobodyさん:2006/03/11(土) 09:39:01 ID:???
さらに仲間の開発者であるDaniel Dekanyも参戦。さらにうざい。
どうやらハンガリー人らしい。
43nobodyさん:2006/04/29(土) 00:22:37 ID:???
hosyu
44nobodyさん:2006/05/10(水) 11:23:18 ID:???
JSF登場でfreemarker意味なし??
45nobodyさん:2006/05/11(木) 01:10:28 ID:duV7et3V
>>44
JSFとfreemarkerはまったく違う技術だろ。混同しているおまえの脳みそに乾杯。
46nobodyさん:2006/05/11(木) 15:06:14 ID:???
いろいろあるテンプレートエンジンで高機能はfreemarker?
テンプレートエンジンをjspの代用として考えるのは時代遅れ?
それはelが登場したから?
47nobodyさん:2006/05/11(木) 16:06:02 ID:???
jspをfreemarkerに変更してくれるeclipseのプラグインはありますか?
48nobodyさん:2006/05/19(金) 20:38:41 ID:???
>>46
>いろいろあるテンプレートエンジンで高機能はfreemarker?

そう

>テンプレートエンジンをjspの代用として考えるのは時代遅れ?

そんなことはまったくない。というより、とても正しい考え方。

>それはelが登場したから?

ELのおかげでJSPをテンプレートエンジンとして使いやすくなったのはたしか。癖があるけどね。

でもなー、JSPは結局servletの一形態だから、servletコンテナがないと動かないので
Webアプリ以外では使えないし、
JSPは思ったより仕様が複雑なので、それよりはFreemarkerのほうが簡単だと思う。
JSPの利点は、標準化されていることと、広く普及していること。逆に言えばそれだけ。
49nobodyさん:2006/05/20(土) 09:53:28 ID:???
>>48
なるほど。ELはメソッド呼べないしね・・
50nobodyさん:2006/06/27(火) 14:36:21 ID:???
日本語の参考サイト少ないね・・・
51nobodyさん:2006/07/11(火) 18:28:10 ID:???
>>50

これのDeveloper'sGuideは比較的簡単な英語なのでどーにかなる。

英語が苦手なオレでもどーにかなったくらいだから大丈夫。
52nobodyさん:2006/11/28(火) 13:31:58 ID:???
jspからfreemarkerに変更するツールはありますか?
タグリブ対応の。
53nobodyさん:2006/11/29(水) 01:19:41 ID:K2b5oyTL
サンプルがwebappばっかなんだけど、スタンドアロンで使うことは意識してないの?
54nobodyさん:2006/11/29(水) 01:29:49 ID:7/LurL62
テンプレートエンジンなんてサーバーに負担かかるだけだし
それほど生産性が高いとも思えない
55nobodyさん:2006/11/29(水) 01:44:55 ID:???
生産性と負荷関係ないし、比較見るとJSPより軽いけどね
56nobodyさん:2006/11/29(水) 10:05:29 ID:???
>>54
jspはコンパイルしてクラスをメモリにロードするので、
jspが多くなってくるとメモリの使用量がかなりパフォーマンスを圧迫します。

ちょっとぐらいでは全然気にしていなかったけど、100以上のjspの場合、結構違ってきますよ。
57nobodyさん:2006/11/29(水) 18:38:38 ID:7/LurL62
テンプレートエンジンくらい自分で作れよバカ
58nobodyさん:2006/11/30(木) 01:16:49 ID:???
自分で作るのダルイじゃない
車輪は買ってくるほうがいい
59nobodyさん:2006/12/01(金) 02:08:52 ID:ZG8rf5XR
>>58
テンプレートエンジン作るより車輪作る方がむずかしいよバカ野郎
60nobodyさん:2006/12/02(土) 06:47:48 ID:???
>>57
そういうおまえはテンプレートエンジンつくったんだろうな。
もちろんVelocityよりもましなものを。
61nobodyさん:2006/12/05(火) 09:35:42 ID:???
>>60
Velocityってそんなにだめなの?
62nobodyさん:2006/12/09(土) 23:16:09 ID:???
別にダメじゃない。てかスレタイに「ずっとまし」とかあるが
テンプレート以上の使い方は必要ないから資料のあるほうがずっとまし
63nobodyさん:2006/12/12(火) 18:32:21 ID:???
ループで定義した一時変数をページスコープにセットする方法はありますか?
ループで定義した値をタグリブに渡したくて。
64nobodyさん:2006/12/13(水) 03:35:27 ID:Nz5vxopy
>>53
> サンプルがwebappばっかなんだけど、スタンドアロンで使うことは意識してないの?
んなことはない。いちばん使われるのがWebアプリだからサンプルもそうなっているだけ。
Webアプリ以外でも使えるように、HTML以外のテキストファイルも生成できるような仕様だし。

>>61
ないのは日本語の資料だけ。英語ならちゃんとしてるよ。
ちなみにVelocityがいけてないせいで、HibernateToolはfreemarkerに乗り換えた。
65nobodyさん:2006/12/14(木) 11:43:27 ID:???
velocityからfreemarkerに変更するツールはありますか?
66nobodyさん:2006/12/15(金) 01:13:18 ID:???
tsukurecus
67nobodyさん:2006/12/15(金) 11:40:03 ID:???
>>64
たぶんないので、PerlなりRubyなりでスクリプト書くしかないと思う。
完ぺきな移行スクリプトは難しいと思うので、移行支援スクリプトぐらいのきもちで妥協しよう。
68nobodyさん:2006/12/17(日) 17:17:19 ID:???
>>64
PHPもお勧めですよ
69nobodyさん:2006/12/17(日) 22:07:41 ID:???
なんかXSLTでいいやって思うようになってきた。
日本語の資料も豊富だし、WebでもXML+XSLTでブラウザにレンダリングさせてるし。
70nobodyさん:2006/12/19(火) 01:00:57 ID:???
いやいや、XSLTは遅すぎるし、そもそも用途がちがうやん。
テンプレートエンジンとして使えなくもないけど、その用途なら素直にテンプレートエンジンつかったほうがわかりやすいだろ。
XSLT複雑過ぎ。
71nobodyさん:2006/12/23(土) 13:14:36 ID:???
>69 >70

どっちもpythonだけど、talとかkidみたいなのがJavaでもあればいいんだけどなぁ。

talは、java実装があるけど長く放置されてるのが・・・。

tal: http://www.zope.org/Documentation/Books/ZopeBook/2_6Edition/AppendixC.stx
kid: http://www.kid-templating.org/
72nobodyさん:2006/12/31(日) 07:33:20 ID:???
>>70
そういえば、Javaでは見たことないな。
XMLC
Tapestry
Mayaa
Wicket
どれもid属性またはそれに似たものを使うタイプだな。
ただ、HTMLデザインを崩したくないというだけならこれらでもいいと思う。
73nobodyさん:2007/03/26(月) 16:11:22 ID:???
XSLTは存在意義を見直した方が良い。
74nobodyさん:2007/05/07(月) 02:35:22 ID:???
ここのリードプログラマーは荒らし。
75nobodyさん:2007/05/09(水) 00:15:28 ID:???
ここのリードプログラマーの荒らしがここ数日続いています。

いくら自分のソフトが人気ないからって、競合ソフトのMLを荒らすなよ・・・。
76nobodyさん:2007/05/14(月) 17:05:43 ID:???
kwsk
77nobodyさん:2007/07/15(日) 02:17:16 ID:???
今更だが・・・

VelocityユーザーのMLで何か質問があったら、いきなりしゃしゃり出て、
FreeMarkerの宣伝をしやがる。

明らかに嫌がらせだろ。
78nobodyさん:2007/07/17(火) 15:09:24 ID:???
Jonathanとかいう人?
明らかにフレーマーだな。

FreeMarker has the feature you want.
「あなたの欲しい機能はFreemarkerにあります」
....
Jonathan Revusky
--
lead developer, FreeMarker project

吹いたw

でも、velocityとfreemarkerはお互いにライバルであって欲しい
velocity(VTL)がいつの日かマルチバイト文字を受け入れてくれる日も来るだろう・・・
79nobodyさん:2007/07/19(木) 00:04:38 ID:???
>>78
一発ネタなら許すが、頻繁なので許せん。

というか、さっさと死ねばいいのにと心から思う。
80nobodyさん:2007/10/17(水) 19:54:13 ID:???
>>79
超遅レスだが、自分はどんどんやってほしいけどなあ。
根拠のない悪口を言うのは馬鹿だが、これは正当な批判だと思うし。

Velocityのような、意図的に貧弱にしたテンプレート言語には、さまざまな不
自由があるのが当然で、その現状できないことを明言する姿勢は正しいと思う。
それに対して、
・いくらなんでもこれじゃ不便すぎる。もっとリッチな言語に移行しよう。
・これぐらいの不便さなら、ビューにロジックを埋め込まれる不都合と比べた
 ら十分に受忍限度内。
どちらの態度を取るかは、ユーザの自由なんだし。
81nobodyさん:2007/10/21(日) 02:12:13 ID:???
>>80
Velocityが専用言語を使っているのは、単にJavaが不便だからじゃないかなあ。
Javaが書きやすければ、eRubyのようにテキストファイルにJavaを埋め込めるようにするだけで、十分使い物になる。
82nobodyさん:2007/10/22(月) 11:05:28 ID:???
テンプレート完全否定だな
83nobodyさん:2007/10/22(月) 23:07:09 ID:???
>>81
それは違うと思うよ。

FreeMarkerスレでVelocityの話ばかりするのもあれだけど、Velocityは例えば、
文字列の結合すら出来ない。つながった文字列を表示したければ、テンプレー
トに変数を並べればいい、という設計思想。あくまで「ビューに必要な最小限」
のロジックだけが許されている。

もちろん、あなたの言うとおり、Javaより簡潔な言語という目的もあるけれど。

私はeRubyでRailsの仕事をしたこともあるから、こういう簡潔な言語ならテン
プレート専用言語要らなくね?という気持ちはわかるけどね。

だけど、2000年頃は、JSPの中にJavaコードを書きまくった、HTMLよりJavaが何
倍も多いものが蔓延していた。Velocityならプロジェクト管理者がこういうの
を強制的に排除できる。eRubyだと出来ない。
84nobodyさん:2007/10/23(火) 10:55:33 ID:???
>>83
テンプレートの効能知ってる人には当たり前の話だし、
分からない人には何を言っても無駄だから、
長文書いても意味ないと思うんだ。
85nobodyさん:2007/10/23(火) 13:18:34 ID:???
>>84
無駄とは限らないでしょ。誰だって最初は、何も知らないんだから。
皆いろんなことをきっかけに、少しずつ学んでいくものだと思う。
86nobodyさん:2007/10/30(火) 04:04:55 ID:???
>>83
Velocity 1.5から文字列連結できるようになったんじゃなかったっけ?

そんな些細なことはおいといて、JavaではVelocityつかったりFreeMarkerつかったり、はてはJSPでもELが導入されたりしてるのを見ると、やっぱなんかへんじゃね?とおもってしまう。
Javaが十分書きやすかったら、Javaと同じ書き方でよかったはずだよね。
VelocityやFreeMarkerがあえて機能を制限しているのはかまわないけど、それと書き方とは別の問題でしょ?機能を制限する・しないということと、書き方をどうするかというのは本来別の話。
機能を制限しても、Javaと同じ書き方にすることはできる。Velocityはまだ埋め込み言語だからそれ用の書き方が必要なのはわかるけど、ELなんかは本来、独自の言語仕様を持つ必要なんかなかった。でもJavaが書きにくいから用意されたとしか思えん。

87nobodyさん:2007/10/30(火) 04:09:55 ID:???
>>83
>だけど、2000年頃は、JSPの中にJavaコードを書きまくった、HTMLよりJavaが何
>倍も多いものが蔓延していた。Velocityならプロジェクト管理者がこういうの
>を強制的に排除できる。eRubyだと出来ない。

VelocityでもJSPでも、マクロとかプラグインを使えば何だってかけるじゃん。
JSPのJSTLなんか、標準でSQL叩けるんだぞ。全然制限になってない。
88nobodyさん:2007/10/30(火) 07:05:54 ID:???
そもそもJSPは出発時点からして失敗してる。
だからJSTLやELとかでお茶を濁そうとしてるが
本質的な設計が失敗だったので
何をやっても汚くなっていくだけ。

JSTLとかあほすぎるし。
条件分岐1つ書くのにどれだけコード書けってんだよ。
89nobodyさん:2008/03/02(日) 17:40:58 ID:???
スクリプレットバッシングの時代にズダボロに引き裂かれたStrutsと、
グングン成長したRails
- ひがやすを blog
http://d.hatena.ne.jp/higayasuo/20080302#1204425432
90nobodyさん:2008/03/10(月) 04:18:05 ID:???
またJonathan RevuskyとDaniel Dekanyが荒らしをしてる。

死ねよ、てめえら。
91nobodyさん:2008/03/10(月) 16:56:46 ID:???
ひどいな・・・・激しいタイトルのメールがスパムフィルタを抜けて届いたから
ビクっとしたらMLのメールだった・・・・

相手を嘘つき扱いで、個人攻撃ですか・・・
92nobodyさん:2008/03/11(火) 15:43:06 ID:???
まあ、このソフトの開発者はそろいもそろって荒らしだもんな・・。
93nobodyさん:2008/06/06(金) 23:50:27 ID:astBuURj
現在のバージョンは、
・セールスレターテンプレート集(68通)
・売れるセールスレターの書き方
・ダイレクトメールワークシート
・穴埋め式Eメールテンプレート(14通)
・究極のセールスレターツールBOX
など、合計で500ページ近いパッケージとCDROMが
セットになっています。


ただ、この無料お試しはだいぶコストがかかるらしいので
500個の限定だそうです。



興味があればこちらをクリックしてください。
http://www.123marketing.jp/yanik/indextrial.php?jvcd=16797

94nobodyさん:2010/04/20(火) 20:18:10 ID:cFW60NlN
マΦコ広げて「初めて貰っちゃうよ♪」とかお姉さん積極的すぎww
入った瞬間イっちゃったけど、そのまま2回戦突入しっちゃたお(^ω^)
http://kwskkkst.net/jp/adbta6z
95nobodyさん:2010/10/04(月) 13:46:49 ID:IyPJtywE
歴史を感じるスレだな。Faceletsに辿り着いたEEはこいつらがあったからこそだ。
96nobodyさん:2011/05/08(日) 20:17:45.59 ID:d9l7m4mU
ほしゅ&あげ
97電脳プリオン 忍法帖【Lv=40,xxxPT】(2+0:8) 【44.7m】
使ったことない