ui: param - передача аргументов метода - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть два файла xhtml, один включает другой.Я уже знаю, как передать контроллер и метод для вызова в диалог, но я не уверен, что это возможно, это фактически передать аргументы / объекты в метод, который будет вызван.Я пробовал что-то подобное, но Eclipse сообщает мне, что в этой части есть синтаксическая ошибка

actionListener = "# {bean [confMethod (param1, param2)]}"

но у него нет проблем с

actionListener = "# {bean [confMethod]}"

file1.xhtml:

<ui:composition>
.....
    <ui:include src="/jsf/include/dg_confirm.xhtml">
        <ui:param name="bean" value="#{myController}" />
        <ui:param name="question" value="Are you sure?" />
        <ui:param name="confMethod" value="myMethod" />
        <ui:param name="param1" value="#{otherController.param1}" />
        <ui:param name="param2" value="#{urlToFollow}" />
    </ui:include>

</ui:composition>

и диалоговое окно

dg_confirm.xhtml

....
<p:commandButton value="Yes" oncomplete="PF('dlg_conf').hide();" actionListener="#{bean[confMethod(param1, param2)]}" ajax="false"/>
.....

Вопрос: можно ли как-то передать аргумент для метода в JSF?

1 Ответ

0 голосов
/ 18 декабря 2018
actionListener="#{bean[confMethod(param1, param2)]}"

Этот синтаксис действительно недействителен.В основном вы ожидаете, что confMethod является статической функцией, которая возвращает имя динамического метода на основе заданных двух аргументов.

Правильный синтаксис следующий:

actionListener="#{bean[confMethod](param1, param2)}"
...