Velocity vs JSPでVelocityを称えるスレ
1 :
nobodyさん :
04/11/11 10:16:00 ID:hiuJkdtg Velocityは、JSPのようにめんどくさいタグなどの記述が必要ない。 Velocityは、ブラウザやHTMLのツールで表示するのにレイアウトが ほとんど崩れない。複雑な処理もVelocityToolsで対応できる。 このあたりを踏まえてJSPより、Velocityのほうが 使いやすいことを称えよう。
JSPと組み合わせて使うものではないの?ベロ 2グッシ
3 :
nobodyさん :04/11/11 10:41:35 ID:hiuJkdtg
単体でも十分よろしいかとおもわれる。 JSPで組み合わせるとは、個別にViewの機能を切り替える ということだろうか。
余裕で4様
だれも、Velocityつかってるやつおらん?
Web限定かよ
vs JSP なので、一応Web限定と言うことで。 ただ、Velocityは汎用的なテキストテンプレートエンジンなことは 言うまでも無い。
言うまでもない、か。 何が「言うまでもない」だよ。 おまえな、ただ単に「言うまでもない」って言いたいだけちゃうんかと。
JSPとの、比較をしたかっただけなので
他の部分は、考慮しないと言うことでお願いしたい。
>>8 すまん
10 :
nobodyさん :04/11/11 23:16:47 ID:vaQLmH+t
>>9 潔いな。
「漢(をとこ)」を感じたぞ。
キュン♥
あまり、JSPの不便さに憤慨している人おらんのかな? タグだらけで、メンテナンスがひどくつらい。
別に、<c:forEach>と書くか#foreachと書くかだけの違いだから。 ツールのサポートとかタグファイルとか考えるとJSPの方がいい。 ELにくらべてVTLが非常に高機能とも思わないし。
Velocity の ブラウザでのレイアウト確認の優位性について JSPのループ処理の場合、 <table> <c:forEach 省略> <tr> <td>おらおら</td> <td>ほげほげ</td> </tr> </c:forEach> </table> こういう表記が多いが Velocityの場合、 <table> <!-- #foreach(省略) --> <tr> <td>おらおら</td> <td>ほげほげ</td> </tr> <!-- #end --> </table> VTLがHTMLに影響しないから、ブラウザで レイアウト確認できて便利! どうよ?いまいち優位性無い? 実際にJSPごりごり書いてる人どう?
14 :
nobodyさん :04/11/12 00:49:49 ID:k91ZTVpR
JSPの最初にうだうだ宣言文を書くのもめんどくさい。
>>13 <table>
<!-- <c:forEach 省略> -->
<tr>
<td>おらおら</td>
<td>ほげほげ</td>
</tr>
<!-- </c:forEach> -->
</table>
にすりゃいいんじゃね?
16 :
nobodyさん :04/11/12 01:16:08 ID:k91ZTVpR
そりゃ、そうだな。 ループでは、JSP と Velocity 両方ともコメントアウトできるな。 こりゃ引き分けやな 値を指定する時はどうだ? JSP <bean:write bean="c" property="hoge"/> Velocity ${c.hoge} JSP ながくね? あと、フォーム部分に値をいれるとき struts のタグライブラリーなんか使うと JSP <html:text bean="hoge" property="hogehoge"/> Velocity <input type="text" name="hoge" value="${form.hogehoge}"> HTMLからコーディングを改変するのVelocityの方が楽やろ。
値の指定 JSP ${c.hoge} Velocity ${c.hoge} かわらん。
strutsのタグライブラリに関してはそのとおりだね。 素のHTMLとの相性に関してはJSPやっぱり不利なんだよ。 ただ、めんどくさいということに関しては、そんなに変わりはないと思われ。 標準であるというJSPのメリットと天秤にかけるものだと思う。 Nirvanaが一般的なタグで使えるようになるととってもいいんだけどねぇ。
19 :
nobodyさん :04/11/12 01:51:25 ID:k91ZTVpR
JSP + EL + JSTL などのtaglib の組み合わせは、 初期設定やら、使えるタグの仕様やらややこしくてかなわねぇ。 Velocity + VelocityTools の組み合わせの方が シンプルでないか。
ELに関してはisELIgnoredとか書かない限り使えるし。 JSTLもstandard.jarとjstl.jarを/WEB-INF/libにほりこむだけ。 その2つのjarも、Tomcatなら/webapps/jsp-examples/WEB-INF/libあたりからもってくればいいからダウンロードの必要はない。 気が利いたIDEなら、JSTLを組み込むメニューがあるし、タグの補完もしてくれる。 JSTLタグの仕様も、c:ifとc:forEachくらい知ってればいいんじゃないかと。 Velocity+VelocityToolsの使い方の方が、資料探すことを考えるとややこしくないかい?
それと、JSP+JSTLは標準でかなり普及している以上、知らないわけにはいかないと思う。 WebのViewとしてVelocityを使う場合には、JSP+JSTLは知っている上であえてVelocityの勉強もする、ということになるから、かなり目に見えるアドバンテージがないと大々的に採用するのは難しいと思われ。 全社的にVelocityを採用するとしても、JSPでかかれた資料も多いわけで。
22 :
nobodyさん :04/11/12 03:42:13 ID:k91ZTVpR
標準かどうかの差で、資料や、ドキュメントの多さが違うので JSP+その他諸々のToolにやや有利な点がおおい。 しかし、Velocity自体の仕様を考えた場合、そんな複雑資料無くても Jakarutaのドキュメント読む程度で十分事足りる気がする。 30分もあれば十分。大量に乱立するタグライブラリーの仕様を見比べ 最適なライブラリを探し当てる手間と労力のほうが大変な気がする。 そもそも、インタプリター的な振る舞いを、タグで記述する処理系は やや抵抗感がある。 まぁ、標準的な仕様と言うことでこれは身に付けなければ しょうがない登竜門ということになりますかな。
23 :
nobodyさん :04/11/12 03:43:34 ID:k91ZTVpR
しかし、Velocityを称えるスレなので、Velocityのいいとこ 上げてください。
JSPのタグライブラリ、そんなに乱立してるかなぁ。 とりあえず条件分岐と繰り返しに関してはJSTLのcoreでいいわけだし、Strutsなどのそれぞれのライブラリで提供されているタグに関してはJSPタグでもVeloでも覚えないといけないことに大差ないね。 JSTLが出てくる前に作られたStrutsのbeanタグがちょっと混乱させているのかもしれないけど。 Strutsタグはhtmlタグとbean:messageしか使わない。 VelocityはWebのViewじゃないもののテンプレートに使えるので便利です。
JSPのタグライブラリは、Sunの中の人がコールドフュージョンにメロメロだっただけだね。きっと。 実際問題としては、HTMLをパースする技術が成熟してなかったってとこかな。 Tape形式サイコー。Nirvanaマンセー。
26 :
nobodyさん :04/11/13 01:50:08 ID:d555cr0m
JSTL後はどちらを使ってもそれほど大差はないね
正確にいえば、JSP2.0からだね。 ${a}を<c:out value="${a}"/>と書かないといけないなら、JSPめんどくさいねという意見に賛成するし。
Velocity だと中にJavaコード埋め込めない? だとすればものすごいアドバンテージだと思うが。 JSPの何が嫌かって、Javaコードが書けてしまう点。最悪だ。ありゃ。
書かなければいい。
30 :
nobodyさん :04/11/15 04:28:24 ID:TbwuYOQc
Velocity Tools で、簡単にコードを埋め込めるね。最高
>>28 ということで、Velocityも最悪だ。ありゃ。
>29 自分では書かなくても書くやつが出る。 >31 どっちも最悪だな。。
というか、JSPにどんなコード書くの? なんかJSPにコード書く余地って残らないような気がするんだけど。
なんかいろいろ書いてくれるよ。 ロジック層と分けてるはずなのに 思いっきりロジック書く。
コード書く力がありあまった、元気なおこさまですこと。
36 :
nobodyさん :04/11/17 00:40:37 ID:5pLFayah
スレの趣旨とは外れますが、他に該当スレがないようなので質問させて下さい。 Velocityでテンプレートファイルを読み込む際に、引数やユーザの入力などにより、 フルパスで指定されたテンプレートファイルを読み込む方法はあるのでしょうか? 開発者ガイドのリソースローダの設定を読むと、予め指定propertiesファイルで指定した ディレクトリしか見てくれないようなのですが・・・。 参考サイトなどの情報でもいいので、どなたかご存知でしたら宜しくお願いします。
37 :
nobodyさん :04/11/19 21:29:20 ID:KF3+s6WK
なぜ降るパスが必要なんだ?
フルパスが必要な状況は、ふつうに考えられると思うが。 オレには今必要ないから、やりかたを調べる気はないが。
>>37 テンプレートを引数で受け取ってマージするようなプログラムを作ろうとしているんです。
その際にテンプレートファイルのディレクトリを固定したくないので、できればフルパスで指定
できるようにしたいな、と思いまして・・・。
>>38 今はFileResourceLoaderを使ってなんとか出来ないかと考えています。
もう少し自分で調べてみます。
40 :
nobodyさん :04/11/22 03:36:51 ID:heuQJjfm
nage
41 :
nobodyさん :04/11/22 23:34:12 ID:K3BCy0O5
hage
42 :
nobodyさん :04/11/22 23:38:45 ID:heuQJjfm
velocity.properties の設定でなんとかなるとおもう
JSP2.0ってweblogicで使えないんじゃ? いつ対応すんのかな。
44 :
36 :04/11/27 02:30:21 ID:???
FileResourceLoaderでpathを/に設定し、引数で受け取ったフルパスの先頭の/を削除したものを Velocity.getTemplate()に渡す事でどうやら希望通りの動作はイケそうです。 velocity.propertiesの設定は↓な感じです。 resource.loader=file file.resource.loader.class=org.apache.velocity.runtime.resource.loader.FileResourceLoader file.resource.loader.path = .,/ やはり公式のドキュメントはしっかり読まないと駄目ですね。 お騒がせしました。
JSPって元々ASPをパクったものやん。 んで、ASPはASP.NETになって、コードを別ファイルへきれいに分離できるようになった。 JSFがはやるかどうかは知らんけど、JSPに先の展開がないのはほぼ間違いない。 Velocityは細かいことやろうとするとJSPと変わらんかもしれんが、 どっちかっつーと仕様の管理がしやすいと思う。
46 :
nobodyさん :04/12/07 21:21:28 ID:lXvcK0Z7
Velocity+Strutsでなんもせんと リクエストパラメータが文字化けする。 フィルターでエンコードせなやってられん
それは、VelocityもStrutsも関係ない話だと思うが。
48 :
nobodyさん :04/12/22 13:36:36 ID:oTjqXk6M
便利なVelociyToolを集めてるとこって、誰か知らない?
49 :
nobodyさん :05/02/02 14:09:55 ID:eHqIqNCu
ERROR velocity - ResourceManager : unable to find resource 'VM_global_library.vm' in any resource loader. って出るんですがどないすればよかとですか?
50 :
nobodyさん :05/02/22 17:58:08 ID:q+URG0Gz
VM_global_library.vm ってファイルの位置がまちがっているか 指定されていないのでは、デフォルトは、WEB-INFの中におくんじゃなかったっけ?
EL はだめぽ。Velocity最高
すみませんが,質問です. Date 型のオブジェクト date を, <bean:write name='date' format='yyyy年MM月dd日' /> と書くことは,Velocity ではどうやるのでしょうか? テンプレートの側に format を埋め込みたいのです.
53 :
nobodyさん :2005/03/23(水) 22:20:10 ID:BOwLGfAi
age
54 :
52 :2005/03/24(木) 19:57:15 ID:???
55 :
nobodyさん :2005/04/24(日) 07:42:56 ID:E/mB2PpA
寂れとるのう、age
vm ファイルの中で、大きなファイルを parse してその中のマクロを呼び出そうとすると、 時失敗してマクロが置換されずに #マクロ名 がそのまま出てしまうことがあります。 どう防いだらいいのでしょうか? velocity.properties の cache ON, OFF は切り替えてみましたが、だめでした。
57 :
56 :2005/06/11(土) 02:26:01 ID:???
うーむ、一ヶ月以上書き込みがなかったりするスレなのか。
JSP2.0のおかげで、JSPの代わりにVelocity使うメリットは無くなったからね。
一時期よく言われていたStruts+Velocityも、StrutsがJSFの方によっていっているからVelocityは意味をなさなくなったね。 でも個人的には、Web以外のところでVelocityはまだまだやれると思っている。 それがどこか知りたい。
普通にテキストファイル出力するときはVelocityでしょ。 まだまだやれるとかではなく、棲み分けだよ。
61 :
59 :2005/06/12(日) 09:55:49 ID:???
いや、だから、どういった目的とか機能とかでそのテキストファイル出力を使う(使える)のかという意味なんだけど。
#macro( 〜 で定義するマクロで引数の数を可変にしたいのですが、 Java のオーバロードみたいなことは出来ないのでしょうか?
>61 Java のオブジェクトにアクセスできて かつ定型的に記述できるものと言えば、 ソースコードジェネレーションがベタな用途かと。 この用途なら多少遅くても誰も困らないし。
velocityって、テンプレートファイルを読み込んでストリームに吐き出しますが、 テンプレートファイルをStringにしてわたし、ストリームでなくString結果を取得することはできますか?
それはVelocityではなくJavaAPIの知識の問題だな StringWriter
こんなかんじ? Template template = Velocity.getTemplate(filename); StringWriter writer = new StringWriter(); template.merge(vContext, writer); String str = writer.toString();
JetspeedのViewの部分で、JSPかVelocityのどっちかを標準として使おうと思ってんだが、どっちがいいだろうか・・? JSPは開発メンバー全員理解してる Veloは俺はもちろん全員知らない でもJetspeed的にはどちらなのか・・?
むしろ、WebのテンプレートにVeloを使う意味がない。
Jetspeed1はviewがほとんどVeloなんだよ。 だから67は心配してんだろ JSTL遣えばよい
70 :
nobodyさん :2006/01/04(水) 21:02:16 ID:t3zaJNir
>>70 デフォルトでエスケープされるようにしたときに、ある箇所でだけエスケープさせないようにするにはどうしてる?
72 :
nobodyさん :2006/01/05(木) 07:04:48 ID:COW50sBS
1.リファレンスのネーミングコンベンションででエスケープしないものを決めておく 2.なんかてきとーなオブジェクトでラップされてたらエスケープしないと決めておく
73 :
nobodyさん :2006/01/18(水) 10:46:11 ID:A/Abgen2
java.lang.NullPointerException at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:831) at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:813) at org.apache.velocity.runtime.RuntimeSingleton.getTemplate(RuntimeSingleton.java:285) at org.apache.velocity.app.Velocity.getTemplate(Velocity.java:469) 上記のような例外が発生します。原因がわかる方いらっしゃいましたらご助力おねがいいたします。 ResourceManager?の生成に失敗してるのかもしれません。 velocity 1.4
>>73 キーワードとして「RuntimeInstance.java:831」でぐぐると、
http://forum.java.sun.com/thread.jspa?threadID=691936&messageID=4022256 というのがありました。
どうやらresource loaderの設定が必要なようです。
以下のサンプルで動くようになったと報告されています。
Properties p = new Properties();
p.setProperty( "resource.loader", "class" );
p.setProperty( "class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader" );
Velocity.init(p);
Template template = Velocity.getTemplate( "report_email_html.vm" );
余談ですが、「Velocity」「NullPointerException」などで検索すると膨大にヒットしてしまい、役に立ちません。
こんなときは、エラー行番号を含めて検索するとそのものズバリが見つかったりします。
75 :
nobodyさん :2006/02/07(火) 17:23:56 ID:MCsbYtmm
Velocity使うとCommons LoggingやLog4jが無いと怒られたりしない? Apache Maven2のpom.xmlで解決させているけど。
76 :
nobodyさん :2006/03/05(日) 21:20:27 ID:2p98MNhp
Velocity最強の理由は制御コードをゴミとして撒き散らかさないことにある HTML出力されたソースを除いたとき、従来のHTMLのそれと同じ姿で出力されるVelocityは美しい JSPだと<option>タグあたりは目も当てられない糞コードで、ああきもい・・・ よってVelocityが最強だと思います。
77 :
nobodyさん :2006/03/28(火) 14:14:50 ID:D0Uv0jaZ
Velocity に、Map を new できるようにしたいんだが どうすればよい?
78 :
nobodyさん :2006/03/28(火) 14:19:45 ID:D0Uv0jaZ
Web + SQL + メール のWebでよくありがちな製作で Velocity なら、 @HTMLコーディングOK ASQL文ごりごり作成OK BメールテンプレートコーディングOK テキスト処理が一括してできるのがよろしい。
ダウンロードできなくなってるんだけど一時的なものかな。 なんか結構前にも同じ状況だった気がするけど。 死滅した?
>>79 オレも困っている。仕方ないのでfreemakerに行こうか迷い中
Velocityがダウンロードできないってのありえない気がするけど いい機会だからfreemarker試してみるのも吉。 正直、Velocityよりよくできてるのは確かなんだけど、でもVelocityでもそんなに不満がないのも確か。 でもHibernateToolsはVelocityすててFreemarkerにしたね。
なんか天下のJakarta様ですら切れたリンクそのまま放置だもんな。 これだからOpenSourceは嫌だ。
83 :
80 :2006/05/19(金) 16:26:22 ID:???
80です。
レスありがと
>>81-82 Velocityのダウンロードサイト復活したみたいです。
だが、この間に漏れはFreemarkerガイドを読んでしまったのだ。
FreemarkerでHelloWorldしてしまったのだ。
結局、Velocityはダウンロードしなかった。
さよならVelocity。
まだだ!まだ終わらんよ!!
85 :
79 :2006/06/27(火) 00:32:57 ID:???
ちゃんとMVCでコード書けばjspもattributeの参照だけですませられるから taglibで十分なことに気づいた。 さよならVelocity。
つうか、式言語使えばtaglibもイランだろ
foreachはいる
jspと比較するからだめなんじゃん。 単体なら非常に使い道ある。
このスレの存在意義がなくなったな。
vs JSP に限定してるしな。
91 :
nobodyさん :2006/06/30(金) 20:07:25 ID:NWeD8f+Y
結論:JSF >>Struts >>>>>>>>> Velocity
正直、 JSF >>>>> Velocity マニアックなView作るときカスタムタグ作らなきゃだけど、 頭抱えるほど難しくはない。 Tomahawk楽しいよね。 ポップアップカレンダーがタグ一つでできるのは、やっぱ嬉しい。 それでユーザが許してくれるかは別問題だけど・・・
JSFもStrutsも、Velocityと組み合わせて使えるのだが・・・
JSFは100歩譲って認めるとしても Struts と Velocity はレイヤがまったく異なるだろ。
>>85 >ちゃんとMVCでコード書けばjspもattributeの参照だけですませられるから
>taglibで十分なことに気づいた。
kwsk
>>86 >つうか、式言語使えばtaglibもイランだろ
kwsk
どうやったらこんなトンデモ論がでてくるのか不思議。
というか、前後関係見ても意味がわからんのなら、おまえの頭がトンデモだな。
ベロシティーでベロベロシテー
99 :
nobodyさん :2006/11/26(日) 10:51:54 ID:Sc7QA46g
webプログラミングの学習をしている者ですがstart tomcatアイコンを クリックするとjava.net.BindException:address already use...という メッセージが出て立ち上がりませぬ。 理由と対処法を知っている親切な方がいれば教えてください。 興味からApache/2.0.55と同時に立ち上げたのが不味かった様な気も するのですが。
>>99 Apacheと同時じゃなくて、Tomcatが2重起動
あるいは別のTomcatがあればそっちが起動している可能性が高い。
「start tomcatアイコン」とあるから、Windows Installerで
インストールしたのだろう。Windowsサービスとして起動していないか?
101 :
nobodyさん :2006/11/26(日) 12:22:38 ID:Sc7QA46g
両方をアンインストールした後tomcatを再インストールしても直らなか ったので、おもいきり焦ったのですが再起動したら無事に動きました。 wwwサーバソフトを複数立ち上げるのは良くないのかも。 perlとphpを使っているのでやってみたのですが。 お騒がせしてすいませんでした。
103 :
nobodyさん :2006/12/23(土) 04:53:16 ID:/zaG8Xwz
TLP移行記念age
トップレベルプロジェクト
106 :
nobodyさん :2007/01/21(日) 16:26:01 ID:OsxuFbp0
質問です ViewにVelocity使ったポートレット作ってるんだけど、 Javascriptを使う必要があるんです。 普通のWebアプリだったらルートにJS置いて <script type="text/javascript" scr="test.js"></script> って書いておけばよかったんだけど、 今回はポートレットなもんだから駄目なんだす。 JSPなら <%= renderResponse.encodeURL(renderRequest.getContextPath() + "/test.js") %> こんなんで解決するんだけど、 Velocityだとどうしたら良いんですか? 教えて エロい人
a
weblogicにkill -3を送ってスレッドのダンプを取ろうと思っています。 ただ、weblogicのスタートのシェルを他社が製造していて、標準出力のリダイレクトをどうしても許可してくれません。 らちが明かないので、アプリ内でSystem.setOut()、System.setErr()を使って出力先を変えました。 アプリのコンソール出力はうまくいきましたが、killの出力はうまくいきません。 killのイベントはOSレベルなので、nativeメソッドで出力をしているようですが、 System.setOut()ではnativeレベルでのファイルディスクプリタの変更ができないようです(動かして感じたレベル)。 何か対策はないでしょうか。
109 :
nobodyさん :2007/07/17(火) 00:35:41 ID:1iugn7+S
ctx.put("あああ","いいい"); ${あああ} ${あああ}がそのまま出ます。これは対応無理ですか?
DAT落ちした模様だが1月ほど前にム板の commons スレで同じ質問が出てた。 例題まで同じなので、コピペとしか思えない。 977 名前:デフォルトの名無しさん[sage] 投稿日:2007/08/30(木) 13:38:57 velocityスレでレスなかったのでここで聞かせてください。 テンプレートで使用するキー名に、日本語は使えないのでしょうか? ●ソース ctx.put("あああ","いいい"); ●テンプレート ${あああ} ${あああ}がそのまま出ます。これは対応無理ですか?
というか、velocityスレでレスなかったと書いてて、投稿日付みれば、コピペであることは明白なんだが。
それもそうだな
>>110 たぶん、Velocityのパーサを拡張しないとだめ。
たしかJavaCCを使ってたと思うから、JavaCCをちょっと勉強しないといけないなあ。
116 :
HemlockDKiller=HORSEFUCKER!! :2007/11/12(月) 05:03:41 ID:va/+Q2kP
HemlockDKiller=HORSEFUCKER!! Hi! I am Horsefucker! I am stupid Korean. I live in Tokushima in Japan. I love YMO. I am foolish, unfair, and a coward. Please Fuck me!
117 :
nobodyさん :2009/04/27(月) 12:25:28 ID:7KrIblQi
Velocity ToolsよりjZonicのほうが優れているような気がする
118 :
nobodyさん :2009/05/02(土) 17:27:34 ID:8u4PIT3Z
気がするだけだろ
両方よく知らない