Отправка динамических данных в базовый компонент в JSF с использованием вложенных выражений JSF - PullRequest
0 голосов
/ 13 ноября 2011

Я недавно начал с JSF (я тоже новичок в HTML) и столкнулся с проблемой с выражением JSF. Мне нужно отправить динамическое значение одному из моих компонентов поддержки, значение является идентификатором текущего вошедшего в систему пользователя. Я пытался с вложенным выражением JSF, но я получил следующее исключение:

action = "# {newLogBean.saveOrUpdateLog (# {user.current.id})}" Не удалось разобрать выражение [# {NewLogBean.saveOrUpdateLog (# {user.current.id})}]

На моей веб-странице строка выглядит так:

<h:commandButton value="Add Log Entry" action="#{newLogBean.saveOrUpdateLog(#{user.current.id})}"/>

Насколько я понимаю, я не могу использовать подобные вложенные выражения, поэтому мой вопрос в том, как я могу решить эту проблему другим способом. Можно ли объявить переменную в JSF для получения идентификатора пользователя, а затем использовать эту переменную для базового компонента, например:

(in JSF) int id = user.current.getId(); // get id of current logged in user    
<h:commandButton value="Add Log Entry" action="#{newLogBean.saveOrUpdateLog(id)}"/>

Какой самый простой способ добиться этого?

1 Ответ

1 голос
/ 13 ноября 2011

В версии 2.2 языка унифицированных выражений вы можете вызывать параметризованные методы. Более новая версия сервера приложений, например Glassfish 3 или Tomcat 7, включает эту версию.

Основным изменением в этом выпуске является добавление вызовов методов с параметры в EL, такие как # {trader.buy (“JAVA”)}.

См. спецификацию на стр. 125.

Другими словами, вы могли бы сделать что-то подобное:

<h:commandButton value="Add Log Entry" action="#{newLogBean.saveOrUpdateLog(user.current.id)}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...