В JSF - Попытка достичь чего-то похожего на "# {bean.run (3)}" - PullRequest
0 голосов
/ 08 февраля 2010

Я хотел бы динамически добавлять кнопки из базового компонента на страницу JSF (также с поддержкой Rich Faces).

Значение кнопок должно быть определено во время выполнения и возвращено компоненту поддержки при нажатии кнопки. (Отсюда и название - на самом деле я пытаюсь сделать что-то вроде «# {beans.run (3)}», т.е. установить фиксированный параметр, который будет использоваться при нажатии кнопки)

Так, например, если пользователь создает кнопку (во время выполнения) и присваивает кнопке значение. Это значение должно быть возвращено базовому компоненту для анализа.

Мой вопрос - Как назначить кнопке (кнопка является компонентом JSF с a4j: support child) значением во время выполнения? (Я пытался использовать a4j: actionParam, но не смог разобраться)

P.S. - Я пересмотрел этот вопрос, чтобы он был короче и точнее из оригинального слишком длинного вопроса

1 Ответ

3 голосов
/ 08 февраля 2010

Есть несколько вариантов:

  • использовать JSF 2.0
  • использовать расширение JBoss EL
  • используйте <f:setPropertyActionListener value="3" target="#{bean.propety>, где propety позднее читается методом run().

    <h:commandButton action="#{bean.run}">
        <f:setPropertyActionListener target="#{bean.property}" 
            value="#{pageVariable}" />
    </h:commandButton>
    <!-- pageVariable contains the number you are passing -->
    
    public class Bean {
       private int property; // with setters and getters
       public void run() {
          // do something with property
       }
    }
    
  • использовать функции Facelets ( вот пример для такой функции) (применяется не во всех случаях)

...