Вопрос по facelets, jsf, jsf-1.2, action, tagfile – Передача вспомогательного действия bean-компонента в файл тега Facelet
В моем проекте JSF 1.2 я создал файл тега facelet и определил inputText с атрибутом actionListener, которому нужно передать имя метода вспомогательного компонента. Я попытался определить переменную actionListener = & quot; # {actionListener} & quot; в файле тега. В моем xhtml, где я вызываю компонент, когда я передаю значение как
<code>actionListener="#{myBean.preFillData}" </code>
файл тегов обрабатывает его как свойство и выдает ошибки, указывающие на отсутствие свойства «preFillData»; найденный. Если я изменю это на
<code>actionListener="#{myBean.preFillData()}" </code>
затем в файле тега возникает ошибка синтаксического анализа, поскольку ему не нравятся круглые скобки для указания имени метода.
Как мы передаем имя метода в файл тега?
Спасибо PT
ле JSF 2.0 это возможно с так называемыми составными компонентами.
Что вы можете сделать, это разделить ссылку на bean-компонент и имя метода, чтобы вы могли использовать скобки для вызова метода. Я только не уверен, что это работает дляactionListener
вы обычно не используете это для вызова действий, но это определенно должно работать дляaction
.
Например.
<my:tag ... bean="#{myBean}" actionMethod="preFillData" />
с внутриtag.xhtml
<h:commandButton ... action="#{bean[actionMethod]}" />
Только если вы используете JSF 2.0 на Facelets, вы можете использовать<o:methodParam>
передать выражение метода в файл тега. Смотрите такжеДинамический интерфейс включает и commandButton.