簡體   English   中英

Java表達式語言:插值?

[英]Java Expression Language : Interpolation?

問候,

在我正在開發的Web應用程序中,我想要執行以下操作:

我有一個像豆

class Gene{
String geneid;
String sequence;
..
}

// EL expression (sometimes should be simple as "${geneid}" without URL pattern)
String exp="<a> href='http://www.ncbi.nlm.nih.gov/pubmed?term=${geneid}' />";
String outputString=someframeworkobject.somemethod(exp,aGeneInstance);

因此outputString的插值方式如下: http://www.ncbi.nlm.nih.gov/pubmed?term=gene19191X ://www.ncbi.nlm.nih.gov/pubmed?term=gene19191X

我可以使用任何輕量級的EL框架嗎?

也許MVEL會為您工作。

用像這樣的模板

 Hello, @{person.getSex() == 'F' ? 'Ms.' : 'Mr.'} @{person.name}

你可以做

 context.put("person", personBean);
 String output = (String) TemplateRuntime.eval(template, context);

查閱本教程 (在這里我讀到了這篇文章,我沒有MVEL的經驗)。

聽起來您所需要的只是核心Java庫類MessageFormat 它非常易於使用,並允許您替換字符串中的模板。

String outputString = MessageFormat.format("<a> href='http://www.ncbi.nlm.nih.gov/pubmed?term={0}' />", "gene19191X");

您還可以創建MessageFormat的實例,並以不同的值重用它。

您還可以嘗試的其他選項是:

  • Apache Commons EL-這是為Web應用程序中的表達式而構建的。
  • Groovy GStrings-有時我會用它來評估“腳本”。 這具有允許更復雜的邏輯的優點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM