2008-10-28 28 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的東西,這似乎更適合此目的 - 此評論完全基於初步調查,因爲我沒有在憤怒中使用它。

相關問題