2016-09-15 56 views
2

我是骆驼新手,并使用简单表达式从Java DSL中的属性文件中获取值。骆驼简单表达式语言 - 如何动态获取属性值

.setProperty("PortalUrl", simple("properties:Portal.url"))

属性文件值 -
Portal.url=abc.com/example

但是现在我需要从属性文件的客户特定的URL。 示例值 -

Portal.url.customer1=abc.com/example/abcd Portal.url.customer2=abc.com/example/xyz

客户名称来在请求本身,所以我要做到像
.setProperty("PortalUrl", simple("properties:Portal.url."+"${body.customerName}"))

,但上面的代码是不工作的。给我的价值PortalUrl财产properties:Portal.ulr.customer1

,当我有一个直接的硬编码值试着它让我从属性文件的网址正确 - .setProperty("PortalUrl", simple("properties:Portal.url."+"customer1"))

,并返回正确的值 - abc.com/example/abcd

,但我想动态获取URL与参数传入请求中的客户名称。 任何人都可以帮助我,并解释如何简单的作品。

回答

2

有你在简单的语言与${body}功能的尝试:

.setProperty("PortalUrl", 
    simple("${properties:Portal.url.${body.customerName}}")) 
+0

哦,不知道你能做到这一点,TIL ^^ –

+0

嗨克劳斯,我也试过,但它不工作或者, '$ {body.customerName}'被视为正常的字符串值,并且代码发出错误,因为没有找到属性文件中的Portal.url。$ {body.customerName}的值。 – SBORA

+0

它为我工作,你使用哪个版本的骆驼? –