2008-10-28 104 views
1

我有一个基于Java的Web应用程序和一个新的要求,允许用户将变量放入文本字​​段中,这些字段在生成文档或其他输出时被替换。其他人如何解决这个问题?如何在Web应用程序中最好地实现用户可选变量

我想具有预先定义的一组变量,如:然后,当用户进入他们可以指定一个可变内嵌一些文本
@[email protected]
@[email protected]

(从一个模态或类似选择它)。例如:

“这是一些文本的订房@[email protected]由我需要的”使用此文

当产生一些输出(如PDF),我会做一个正则表达式,发现所有变量并用正确的值替换它们:

“这是一些文本的订房10001由我需要”

我最初的想法是像Freemarker的,但我认为这是我的用户太复杂,会要求他们知道我的DataModel(eww)。

感谢您的阅读!

D.

回答

0

我以前用过类似的替换标记系统。我个人喜欢类似的东西。

[myvalue的]

正如很容易为用户键入,然后我只是用置换换出令牌为真实的数据。

+0

太复杂。这听起来像是当你已经有处理它的MessageFormat时重新发明轮子。 – 2008-10-28 15:44:08

2

查看java.text.MessageFormat - 特别是格式化方法 - 因为它专门用于您正在查找的内容。

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

你甚至可能想从一个资源包模板文本,允​​许支持多国语言,具有应对的事实补充能力是{0}和{1 }在某些语言中可能以不同的顺序出现。

更新: 我刚刚阅读您的原始文章,并注意到关于PDF的评论。 这表明模板文本将比一行或两行显着更大。

在这种情况下,您可能想要探索一些类似StringTemplate的东西,这似乎更适合此目的 - 此评论完全基于初步调查,因为我没有在愤怒中使用它。

相关问题