Подвыражения языка унифицированных выражений Java - PullRequest
1 голос
/ 28 мая 2011

У меня есть таблица данных, которая предоставляет объекты из списка. В этой таблице данных я хотел бы использовать тег типа p:columns(primefaces), который предоставляет строки из списка, которые представляют имя поля.

Теперь мне понадобится подвыражение, чтобы можно было использовать динамическое имя поля, например:

#{entry.#[column.fieldName}}

Есть ли возможность сделать это в JSF2?

Ответы [ 2 ]

2 голосов
/ 28 мая 2011

Если запись имеет методы доступа get / set для значений столбцов, вы можете использовать этот синтаксис:

#{entry[column.fieldName]}

В EL вы можете использовать два синтаксиса для доступа к значению свойства «lastname» объекта:

#{myObject.lastname}
#{myObject["lastname"]}

Вы можете посмотреть JSPIntro на oracle.com

0 голосов
/ 28 мая 2011

Нет, EL не работает так.

То, что вы могли бы сделать для достижения желаемой функциональности, было бы так:

#{entry.getField(column.fieldName)}

, где getField() - это метод, который используетотражение (возможно, через PropertyDescriptor) для доступа к полю с заданным именем.Однако это функция EL 2.2, поэтому вам понадобится довольно недавняя реализация EL, например, предоставленная Tomcat 7.

...