問題タブ [stringtemplate]
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 - MVCとJava-EE
何年にもわたって、私はModel-View-Controllerデザインパターンとそれが提供する利点にかなりの愛情を抱きました。しかし、Webアプリケーションに関しては、これらの利点を最大限に活用するのに苦労しています。
UsersComponentというコンポーネントを作成する場合、次のもので構成されます。
- ユーザーのリスト
- このユーザーリストをアクティブにフィルタリングするテキストフィールド
次に、Java Swingでは、JPanelを拡張したクラスUserComponentを簡単に実行でき、UserComponent内で、クラスのモデル化、表示、および制御を行うことができます。そして、非常に簡単に再利用可能なコンポーネントになります。
さて、私がやりたいのは、Java-EEでこれを模倣することです。文字列テンプレートは、このための解決策を提供するようです。しかし、さらにひねりを加えました。私はウェブデザイナーが好きです。また、開発者を関与させたり、使用するエントリポイントに多くのことを入れたりすることなく、コンポーネントを追加する機会を提供したいと思います。
たとえば、ベースページテンプレートがあり、設計者がこのページのどこかにUserComponentコンポーネントを追加したいとします。次に、ほとんどの場合、いくつかのリクエストパラメータに基づいてモデルにデータを入力する必要があります。
それで、これが実際の質問です。特定のテンプレートにどのテンプレートが含まれているかを判断する方法を知っている人はいますか。したがって、このテンプレートを実行時に(または変更するたびに)分析し、メインページコントローラーで適切なハウスキーピングを実行できますか?
基本的に、私はこれを達成することができました:
- Designerはstringtemplateを作成します。言う、MyPage.st
- モジュールを書き換えると、www.mydomain.com / IgnoredFolderNameForSeo/MyPageがwww.mydomain.com/pagerenderservlet?templateName=MyPageに変更されます。
- ページレンダリングサーブレットは、パラメータに基づいてstringtemplateをロードし、それを分析して文字列テンプレート内で使用されているコンポーネントを判別し、必要に応じてそれらを初期化します。
現在、私が思いついた最善の解決策は、ベースページごとに異なるサーブレットを用意することです。これにより、機能のさまざまなサブセットが公開されます。しかし、私はこの解決策にまったく満足していません。動的に処理する可能性があれば、とてもきれいになります。基本的に、サポートされているすべてのコンポーネントのハンドラーがありますが、実際に必要なコンポーネントのみを初期化/処理します。
私はこれについてあなたたちの考えを聞いてみたいです:)
** アップデート **
私のスイングについての言及は、この問題を少し混乱させたと思います。私がやりたいのは、文字列テンプレートを介してWebデザイナーが利用できるコンポーネントを作成することです。このコンポーネントは、任意の文字列テンプレートに含めることができます。
だから私はそれがすべてこれに帰着すると思います。
文字列テンプレートフレームワークを知っている人はいますか?実行時に、他のどの文字列テンプレートが文字列テンプレートに含まれているかを判断できます。
templates - stringtemplateを使用する完全なサンプルJavaプロジェクトはどこでダウンロードできますか?
http://www.antlr.org/wiki/display/ST4/StringTemplate+4+Wiki+Home、http://www.stringtemplate.org/ _ _
ウィキを調べたところ、すべての木々を通して森が欠けている可能性がありますが、大量の切り鋏ではなく、完全に機能するJavaプロジェクトを確認する必要があります。理想的には、以下を含むいくつかの完全なプロジェクト(github?)
- bizロジック。
- header.htm、body.htm、およびfooter.htm。
- 複数の本文ページ。それらがビジネスロジックとどのように相互作用するかを確認できます。
どうも。
velocity - StringTemplate、FreeMarker、Velocity、TilesなどのJavaテンプレートエンジン内でのRESTサポート?
Javaアプリケーションでヘッダー/本文/フッターページをテンプレート化するためのRESTfulURLの作成をサポートするいくつかのテンプレートエンジンを比較したいと思います。ページにjsp、.st、または.ftl拡張子を付けたくありません。人気のあるテンプレートエンジンのいずれかを使用してRESTを設定する方法を示すサンプルアプリケーションへのリンクを持っている人はいますか?
ありがとう。
-ジョン
antlr - ANTLR テンプレート トランスレータは文法の一部に一致します
私は言語の文法を書きましたが、今はいくつかの構文糖構造を扱いたいと思っています。そのために、テンプレート トランスレータを書くことを考えていました。
問題は、テンプレート文法で言語の一部の構造のみを翻訳し、残りはそのままにしておきたいということです。
例えば:
私はこれを入力として持っています:
それを次のように翻訳したいと思います。
理想的には、ANTLRでこのように考えたいと思います
rule decl にマッチしない残りの入力はそのまま残してほしい。
言語の完全な文法を書かずに ANTLR でこれを達成するにはどうすればよいですか?
java - ターゲット言語をJavaとするPL/SQL用のANTLRパーサー
Javaターゲット用のPL/SQL文法はもうありますか?C#用のものを入手しましたが、Javaターゲットが必要です。
これをANTLRで使用して、StringTemplatesを使用してJavaを生成したいと思います。私はドキュメントを読み、これを達成する方法を十分に理解しています。誰かがすでにこの種のことを行っているかどうかを確認したかっただけです。
rewrite - antlr ルールの出力を書き換える
rule1 に subrule 、 rule2 がある antlr スクリプトを作成しようとしています。ルール 1 で StringTemplate を使用しています。
私がやりたいことは、rule1 によって消費/使用される前に、rule2 に一致するテキストを再構築することです。それ、どうやったら出来るの ?
ここで「meth」はstringtemplate呼び出しです
サブルール 4 が "select * from dual;" に一致する場合、これを rule1 "#sql (select * from dual);" に渡したいと思います。
これが私の実際のコードです。select_statementルールに一致するステートメントを「#sql()」でラップし、「stats」リストで「meth」テンプレートの「body」属性に渡します。
java - カスタム区切り文字を使用したこの StringTemplates が機能しないのはなぜですか?
カスタム区切り文字で文字列テンプレートを使用しようとしています。
このコード スニペット:
スローorg.stringtemplate.v4.compiler.STException
するので、明らかに間違っています。
に変更するnew ST("Hello $what$", '$', '$')
と動作します。なぜ機能しないの@
ですか?
編集$
-と以外の他の文字を試しましたが、これまでのところ@
何も$
機能しません。どうしたの?
java - StringTemplateで文字列区切り文字を使用できますか?そうでない場合、優れたテンプレートエンジンは何ですか?
変数名の置換のみを行い(他の機能は必要ありません)、文字ではなく文字列である区切り文字を使用するように構成できる、単純なテンプレートエンジンが必要です。例えば
「Helloworld」を返す必要があります(Javaコードは変更される可能性がありますが、テンプレート構文に関心があります)
複数文字の区切り文字が必要な理由は、すべての種類の文字を含む可能性のあるいくつかのテンプレートがあり、テンプレート化されたドキュメントのネイティブ言語(html、css、js)がテンプレートエンジンと衝突しないようにするためです。 。
この投稿を読んだ後、StringTemplateを使用しようとしましたが、1文字を超える長さの区切り文字をサポートしているかどうかはわかりません(上のコンストラクターST
は文字列ではなく文字区切り文字を受け入れるようです)。
StringTemplatesは複数文字の区切り文字をサポートしていますか?そうでない場合は、上記のテンプレート構文で動作する別の単純なテンプレートエンジンの推奨事項はありますか?
java - Stringtemplate: HashMap が使用するテンプレートを多値属性に適用してもよろしいですか?
私の .stg ファイルには 2 つのテンプレートがあり、どちらも複数値の HashMap に適用されます。注入されたオブジェクトとして HashMap が使用されます。
そして、何度も注入できる HashMap のインスタンスが必要です。
私の問題は、別のテンプレートに切り替えると、ANTLR が 2 番目の HashMap をリスト (複数のオブジェクトと null 値) と見なすように見えることです。
私の .g ファイルの一部は次のとおりです。
私が期待する結果は次のとおりです。
しかし、私は得ました:
FOO と BAR を同じテンプレートのままにして、そのまま BAR を FOO に置き換えると、出力は次のようになります。
ドキュメントでは、「org.stringtemplate.v4.STにSTを同期して追加(文字列名、オブジェクト値)」と述べています:
「リストを送信してから単一の値要素を挿入すると、add() は元のリストをコピーして新しい値を追加します。」
ハッシュマップはどうですか?StringTemplate は、HashMap、キーと値のペア アクセス、意図的にオブジェクト、リストおよび誤って注入された複数値と見なしますか?
java - StringTemplate は区切り文字として < > を削除します
Java Web アプリで StringTemplate を使用して HTML メールを生成しようとしています。改行を入力しようとするとき、私はこれを使用します\<br\>
これは機能していないようです。 \<b\>
も機能していません。これが問題かどうかをテストできるように、区切り文字として < と > をオフにする方法はありますか? StringTemplate のドキュメント全体で、 $...$ を区切り文字として使用するように指示されていますが、 <...> を使用しない方法については言及されていません。