How to concatenate Strings in EL expression?

前端 未结 1 1490
梦毁少年i
梦毁少年i 2020-11-27 05:11

I need to create a callback for while as a parameter I need to pass an argument that is string-concatenated with an external parameter i

相关标签:
1条回答
  • 2020-11-27 05:52

    If you're already on EL 3.0 (Java EE 7; WildFly, Tomcat 8, GlassFish 4, etc), then you could use the new += operator for this:

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

    If you're however not on EL 3.0 yet, and the left hand is a genuine java.lang.String instance (and thus not e.g. java.lang.Long), then use EL 2.2 capability of invoking direct methods with arguments, which you then apply on String#concat():

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

    Or if you're not on EL 2.2 yet, then use JSTL <c:set> to create a new EL variable with the concatenated values just inlined in value:

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

    See also:

    • String concatenation in EL for dynamic ResourceBundle key
    0 讨论(0)
提交回复
热议问题