gpt4 book ai didi

jsf - 如何在EL表达式中串联字符串?

转载 作者:行者123 更新时间:2023-12-03 08:45:54 24 4
gpt4 key购买 nike

我需要为<h:commandButton>创建一个回调,同时作为参数,我需要传递一个与外部参数id字符串连接的参数:

我试图嵌套一个EL表达式,像这样:

<h:commandButton ... action="#{someController.doSomething('#{id}SomeTableId')}" />


但是,由于EL异常而失败。什么是正确的语法/方法来做到这一点?

最佳答案

如果您已经在使用EL 3.0(Java EE 7; WildFly,Tomcat 8,GlassFish 4等),则可以使用新的+=运算符:

<h:commandButton ... action="#{someController.doSomething(id += 'SomeTableId')}" />


但是,如果您尚未使用EL 3.0,并且左手是真正的 java.lang.String实例(因此不是 java.lang.Long实例),请使用EL 2.2调用带参数的直接方法的功能,然后将其应用于<抄送>:

<h:commandButton ... action="#{someController.doSomething(id.concat('SomeTableId'))}" />


或者,如果您尚未使用EL 2.2,请使用JSTL String#concat()创建一个新的EL变量,其串联值仅内联在value中:

<c:set var="tableId" value="#{id}SomeTableId" />
<h:commandButton ... action="#{someController.doSomething(tableId)}" />


也可以看看:


String concatenation in EL for dynamic ResourceBundle key

关于jsf - 如何在EL表达式中串联字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9680903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com