Ben*_*rel 17 jsf el string-concatenation
我需要为<h:commandButton>while 创建一个回调作为参数,我需要传递一个与外部参数id字符串连接的参数:
我尝试嵌套一个这样的EL表达式:
<h:commandButton ... action="#{someController.doSomething('#{id}SomeTableId')}" />
Run Code Online (Sandbox Code Playgroud)
然而,由于EL异常,这失败了.这样做的正确语法/方法是什么?
Bal*_*usC 29
如果您已经使用EL 3.0(Java EE 7; WildFly,Tomcat 8,GlassFish 4等),那么您可以使用new +=运算符:
<h:commandButton ... action="#{someController.doSomething(id += 'SomeTableId')}" />
Run Code Online (Sandbox Code Playgroud)
如果你还没有使用EL 3.0,并且左手是一个真实的java.lang.String实例(因此不是例如java.lang.Long),那么使用EL 2.2调用带参数的直接方法的功能,然后将其应用于String#concat():
<h:commandButton ... action="#{someController.doSomething(id.concat('SomeTableId'))}" />
Run Code Online (Sandbox Code Playgroud)
或者,如果您还没有使用EL 2.2,那么使用JSTL <c:set>创建一个新的EL变量,其中的连接值只是内联值:
<c:set var="tableId" value="#{id}SomeTableId" />
<h:commandButton ... action="#{someController.doSomething(tableId)}" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13445 次 |
| 最近记录: |