1

私は Java ベースの Web アプリケーションを使用しており、ドキュメントやその他の出力が生成されるときに置換されるテキスト フィールドにユーザーが変数を配置できるようにするという新しい要件があります。他の人はこれについてどのように行っていますか?

次のような定義済みの変数セットを用意することを考えていました。
@BOOKING_NUMBER@
@INVOICE_NUMBER@

次に、ユーザーがテキストを入力すると、変数をインラインで指定できます (モーダルなどから選択します)。例えば:

@BOOKING_NUMBER@「これは私が必要とする予約用のテキストです」

このテキストを使用する出力 (PDF など) を生成するときは、正規表現を実行してすべての変数を見つけ、正しい値に置き換えます。

「これは、私が必要とする予約 10001 のテキストです」

私の最初の考えは Freemarker のようなものでしたが、それは私のユーザーにとっては複雑すぎて、私の DataModel (eww) を知る必要があると思います。

読んでくれてありがとう!

D.

4

2 に答える 2

2

java.text.MessageFormat (特に format メソッド) を見てください。これはまさに探しているもののために設計されているためです。

すなわち

MessageFormat.format("This is some text for booking {0} that is needed by me, for use with invoice {1}", bookingNumber, invoiceNumber);

{0} と {1} が一部の言語で異なる順序で表示される可能性があるという事実に対処する機能を追加して、複数の言語をサポートできるようにするために、リソース バンドルからテンプレート テキストを取得することもできます。

更新: 元の投稿を適切に読み、PDF に関するコメントに気付きました。これは、テンプレート テキストが 1 行または 2 行よりも大幅に大きくなることを示唆しています。

そのような場合、この目的により適していると思われるStringTemplateのようなものを調べたいと思うかもしれません- このコメントは最初の調査のみに基づいています.

于 2008-10-28T15:40:54.137 に答える
0

以前に同様の交換トークン システムを使用したことがあります。みたいなのが個人的には好きです。

[マイバリュー]

ユーザーが入力するのは簡単なので、置換を使用して実際のデータのトークンを交換するだけです。

于 2008-10-28T15:04:33.477 に答える