JSF EL условно со строками [дубликат]

В PHP оба 'my name' и "my name" являются строками. Вы можете узнать больше об этом в руководстве по PHP .

Вещь, которую вы должны знать, это

$a = 'name';
$b = "my $a"; == 'my name'
$c = 'my $a'; != 'my name'

. В PHP люди используют одиночную кавычку для определения константа, например 'a', 'my name', 'abc xyz', используя двойную кавычку для определения строки, содержащей идентификатор, такой как "a $b $c $d".

И еще:

echo 'my name';

быстрее, чем

echo "my name";

, но

echo 'my ' . $a;

медленнее, чем

echo "my $a";

Это верно для других, используемых в строке.

11
задан BalusC 27 August 2014 в 08:05
поделиться

1 ответ

Если вы уже используете 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 для вызова прямых методов с аргументами, которые затем применяются к String#concat():

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

Или, если вы еще не используете EL 2.2, используйте JSTL <c:set>, чтобы создать новую переменную EL с конкатенированными значениями, только вложенными в значение:

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

См. также:

22
ответ дан Community 24 August 2018 в 06:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: