問題タブ [freemarker]
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 - Spring freemarker bind-コントローラーとは何ですか?
フリーマーカーのスプリングマクロのドキュメントを見ると、「コマンド」オブジェクトについて説明しています...それが何であるかについて混乱していますか?最初は、コントローラーによって設定されたModleMapだけだと思いましたが、明らかにそうではありません。実際に使用される「バインド」とは何ですか?
java - Spring と Freemarker のエンコードの問題
私は Freemarker と Spring を Jetty で実行するプロジェクトに取り組んでいます。さまざまな国の文字を表示する必要があるため、エンコーディングを UTF-8 に設定しようとしています。ただし、何をしても ISO-8859-1 のままです。web.xml にフィルターを作成しようとしましたが、これを入れてみました
ビューをレンダリングする直前。しかし、ページを読み込んで [View Page Info] をクリックすると、エンコードは常に ISO-8859-1 になります。また、アプリサーバーに直接アクセスして、Apache の影響を受けているかどうかを確認しましたが、同じ結果が得られました。どんな助けでも大歓迎です。
forms - Struts+Freemarker でフォームの出力を変更する
Struts2 と Freemarker を使用して Web サイトを作成しています。
次のようなフォームタグを追加するたびに:
<@s.form action="foo"> <@s.combobox (...)/>
不要な html/css/javascript が大量に生成されます。
余分な要素を生成しないように指定する方法はありますか?それとも Freemarker.jar に移動してテンプレートを好みに合わせて編集する必要がありますか?
templates - Strutsテンプレートソースの指定
テキストフィールドのあるフォームを使用しているとします。
<@ s.form action = "login"> <@ s.textfield label = "E-mail" name = "email" /> <@ s.submit value = "send" />
テキストフォームが標準のtext.ftlではなくカスタムテンプレート(text_login.ftl)によって生成されるように指定するにはどうすればよいですか?
java - Freemarker/Velocity - 日付操作
これら 2 つのテンプレート エンジンについて、かなり単純な質問があります。
未来/過去の日付、今からの固定時間、たとえば 18 か月前、または明日を作ろうとしています。
速度/フリーマーカー テンプレート (のようなもの) 内の Java 日付オブジェクトを使用してこれを実行できることはわかっていますが、 DateToolまたはフリーマーカー コアを使用$date.add(2,-18)
してこれを実行したいと考えています。
これは純粋に表示上のもの (フライト予約フォームに表示されるデフォルトの日付で考えてみてください) であるため、テンプレート エンジンがこれを実行できない理由はわかりません。
それは可能ですか?もしそうなら、どのように?
freemarker - freemarker では、ファイルを含める前にファイルが存在するかどうかを確認できますか?
標準テンプレートのブロックを置き換えるためにオプションで拡張ファイルを追加できる freemarker のシステムを構築しようとしています。
ここまで来ました
そのため、extension.ftl ファイルが存在する場合はそれが使用されます。そうでない場合は、recover ブロック内の部分が出力されます。
これに関する問題は、freemarker が、recover ブロックをトリガーする原因となったエラーを常にログに記録することです。
したがって、次の 2 つのいずれかが必要です。
- ファイルが存在しない場合は、インクルードを呼び出さないでください。したがって、ファイルの存在を確認する必要があります。
-また-
- すべての freemarker エラーが表示されないようにロギングを変更せずに、recover ブロック内のエラーのロギングを防止する方法。
variables - フリーマーカー補間に補間を含めることはできますか?
たとえば、ハッシュ ツリー上の別の変数の名前を含む Freemarker 変数 A があるとします。「B.」A を使用して B の値を読み取りたいので、たとえば、B に「C」が含まれている場合、Freemarker に A を使用して C を出力するように指示できます${${A}}
。結果として「C」が出力されるはずです。当然、これは Freemarker では機能しませんが、これを達成する方法はありますか?
freemarker - 単一の freemarker テンプレートを使用して、任意の pojo のテーブルを表示します
高度な Freemarker グルに注意:
単一の freemarker テンプレートを使用して、データとは別に定義された表示する列を使用して、任意の pojo のテーブルを出力できるようにしたいと考えています。問題は、実行時に pojo の関数へのハンドルを取得し、freemarker にその関数 (ラムダ スタイル) を呼び出す方法がわからないことです。ドキュメントをざっと読むと、Freemarker は関数型プログラミングをサポートしているように見えますが、適切な呪文を公式化することはできないようです。
単純化した具体例をまとめました。2 つのリストがあるとします。firstName と lastName を持つ人のリストと、make と model を持つ車のリストです。次の 2 つのテーブルを出力します。
と
しかし、これは何十もの異なる pojo タイプを処理する必要があるフレームワークの一部であるため、同じテンプレートを使用したいと考えています。
次のコードがあるとします。
上記のすべてがこの問題に当てはまります。これが私がハッキングしてきたテンプレートです。私が問題を抱えているコメントに注意してください。
したがって、col.name には、pojo からアクセスしたいプロパティの名前が含まれています。私はいくつかのことを試しました。
と
もちろん、これらは機能しません。意図を伝えるためにそれらを含めただけです。関数へのハンドルを取得して freemarker に呼び出させる方法、または任意の式を文字列として取り、実行時に評価できる何らかの「評価」機能を探しています。
java - Freemarker でデフォルトの変数区切り文字を変更できますか?
Java と Freemarker を介していくつかのコード/スクリプト (特に Perl スクリプト) を生成するプロジェクトに取り組んでいます。今のところ動作していますが、Freemarker でデフォルトの変数区切り文字 ($) を変更する方法があるかどうか疑問に思っていましたか?
または、Perl スクリプトの生成により適した変数区切り文字を使用する別の Java テンプレート エンジンはありますか?