問題タブ [velocity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 空の Velocity 変数名を非表示にするには?
Java アプリケーションで Struts + Velocity を使用していますが、フォームを送信した後、確認ページ (Velocity テンプレート) には、次の例の Age のように、空のラベルではなく変数名が表示されます。
名前:フェルナンド
年齢: {person.age}
性別: 男性
非表示にする方法が知りたいです!
java - Velocity テンプレートにマップされたモデル オブジェクトの読み取り
たとえば、Person クラスのような Struts + Velocity 構造があり、その 1 つのプロパティは Car オブジェクト (独自の getter/setter メソッドを持つ) であり、ModelDriven と getModel 構造を使用してアクションに送信される Velocity フォームにマップされます。 .
car プロパティが null または car.id != 0 でない場合は「View Car」を表示するボタンをフォームに配置するか、car が null または car.id = 0 の場合は「Choose Car」という別のボタンを表示します。
これをどのようにコーディングしますか。テンプレートファイルでそのようなことを試しました:
しかし、 #if行の Null 値に関するエラーが発生し続けます。
Person で boolean メソッド hasCar() も作成して試してみましたが、アクセスできず、理由がわかりません。
また、Velocity + Struts のチュートリアルは見つけにくいか、適切な情報がありません。
ありがとう
velocity - 速度で # をエスケープする方法
速度で # をエスケープする方法を知りたいです。バックスラッシュはそれをエスケープしているようですが、それ自体も印刷されます
これ:
プリント:
をお願いします:
java - ベロシティ Template.merge() の失敗の原因は何ですか? どうすればそれを回避できますか?
私たちのチームは、ベロシティ テンプレートで繰り返し発生する問題に直面しています。レンダリング時に、「Template.merge() の失敗 - Velocity テンプレート '/template.vm' をレンダリングできません」というメッセージとともに RuntimeException をスローするものがあります。問題を再現できず、Web 上のドキュメントはかなり不十分です。この問題は一貫して再現できるわけではありません。同じテンプレートをレンダリングするとエラーが発生することがありますが、それ以外の場合は問題なく表示されます。Template クラスのソース コードもほとんど役に立ちません。前もって感謝します。
編集: Nathan Bubna の回答に基づいて、Velocity バージョン 1.4 を使用していることを明確にする必要があります。
編集:スタックトレースが有益であることが指摘されたので、ここにあります:
2008-09-15 11:07:57,336 エラー速度 - Template.merge() の失敗。ドキュメントが null です。解析エラーが原因である可能性があります。2008-09-15 11:07:57,336 ERROR VelocityResult - Velocity テンプレートをレンダリングできません, '/search/[template-redacted].vm' java.lang.Exception: Template.merge() 失敗。ドキュメントが null です。解析エラーが原因である可能性があります。org.apache.velocity.Template.merge(Template.java:277) で com.opensymphony.webwork.dispatcher.VelocityResult.doExecute(VelocityResult.java:91) で com.opensymphony.webwork.dispatcher.WebWorkResultSupport.execute(WebWorkResultSupport) .java:109) で com.opensymphony.xwork.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:258) で com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:182) で com.opensymphony.xwork.interceptor.
debugging - 従来のコード デバッグの意味で Velocity テンプレートをデバッグする方法はありますか?
Web アプリケーションで Velocity を多用しています。Java 側をデバッグし、Velocity Context が正しく入力されていることを確認するのは簡単ですが、マージ ステップで VTL の解析をステップ実行したり、ブレークポイントを設定したりできることは非常に価値があります。ツールはありますか?または VTL (Velocity Template Language) でこの種のことを可能にする IDE/IDE プラグインはありますか?
java - Apache Velocity テンプレートから定数値にアクセスしますか?
Velocity テンプレートから定数値 (つまり、Java クラスで定義された public static final 変数) にアクセスすることは可能ですか?
私はこのようなものを書くことができるようにしたいと思います:
しかし、これは明らかに正しい構文ではありません。
apache - ApacheVelocityのカスタムディレクティブを作成するにはどうすればよいですか
ApacheのVelocityテンプレートエンジンを使用していますが、カスタムディレクティブを作成したいと思います。つまり、「#doMyThing()」を記述して、テキストを生成するために記述したJavaコードを呼び出せるようにしたいのです。
行を追加することでカスタムディレクティブを登録できることを知っています
私のvelocity.propertiesファイルに。そして、 Directiveクラスを拡張することで、そのようなクラスを記述できることを知っています。私が知らないのは、ディレクティブクラスを拡張する方法です。これは、新しいディレクティブの作成者向けのある種のドキュメントです。たとえば、getType()メソッドが「BLOCK」または「LINE」を返すかどうかを知りたいのですが、setLocation()メソッドは何をすべきか知りたいのですが。
「ソースを使用してください、ルーク」よりも優れたドキュメントはありますか?
templates - struts プロジェクトのタイル - freemarker よりも優れていますか?
Struts アプリケーションでテンプレート エンジンを使用したいのですが、FREEMARKER や VELOCITY の代わりに TILES の使用が推奨されるかどうかを知りたいです。
velocity - Velocity 内の配列にアクセスする最良の方法は何ですか?
次のようなJava配列があります。
私の意見では、アクセスする自然な方法は次のとおりです。
しかし、それは機能していません。私はこの回避策を持ってきました。しかし、このような簡単な作業にはコードが多すぎます。
他に方法はありますか?
java - Velocity は #parse しますが、変数に代入します
含まれている (解析された) ヘッダー、本文、フッター テンプレートを含む標準テンプレートがあるとします。
body テンプレートでは $subject のような変数が定義されており、ヘッダー テンプレートにも表示する必要があります。
HTML::Mason (perl ベース) などの他のテンプレート言語では、最初に body テンプレートを評価して $subject 変数を取得しますが、その出力を変数に一時的に保存して、最終的な出力が正しい順序 (ヘッダー、本文、フッター)
速度では、次のようになります
set ($body=#parse("body.vm"))
parse("header.vm")
${ボディ}
parse("フッター.vm")
しかし、これはうまくいかないようです。これを行う方法について何か考えはありますか?