如何在嵌套的spel表达式中进行字符串合并

rxztt3cl  于 2021-07-16  发布在  Java
关注(0)|答案(1)|浏览(360)

我正在尝试对neste spel表达式执行stringconcat-
我从一个豆子里得到主机名

<bean id="localhost" class="java.net.InetAddress" factory-method="getLocalHost" />

现在在另一个bean中,我想根据一些正则表达式匹配将主机名附加到构造函数的输入中。

<bean id="worker" class="a.b">
    <constructor-arg value="#{localhost.hostName matches '.*north-usa.*' ? '${taskList}-#{conf.version}-#{localhost.hostName}' : '${taskList}-#{conf.version}' "/>
</bean>

出于某种原因,这是文本字符串的输出,其中只解析tasklist-

taskListA-#{conf.version}-#{localhost.hostName}

我想实现

taskListA-someConfVersion-someHostName

到目前为止我已经试过了

<bean id="worker" class="a.b">
    <constructor-arg value="#{localhost.hostName matches '.*north-usa.*' ? "${taskList}-#{conf.version}-#{localhost.hostName}" : "${taskList}-#{conf.version}" "/>
</bean>

<bean id="worker" class="a.b">
    <constructor-arg value="#{localhost.hostName matches '.*north-usa.*' ? '${taskList}-conf.version-localhost.hostName' : '${taskList}-#conf.version' "/>
</bean>

<bean id="worker" class="a.b">
    <constructor-arg value="#{localhost.hostName matches '.*north-usa.*' ? '#(${taskList}-conf.version-localhost.hostName)' : '${taskList}-conf.version' "/>
</bean>

但都没用。任何帮助都将不胜感激。

igetnqfo

igetnqfo1#

我不知道spel中是否有类似嵌套表达式的内容,但我知道如何进行字符串串联:


# {localhost.hostName matches '.*north-usa.*' ? '${taskList}-' + conf.version + '-' + localhost.hostName : '${taskList}-' + conf.version}

相关问题