f: параметр не работает при использовании с Тринидад 2 - PullRequest
0 голосов
/ 23 января 2012

Я использую JSF 2 Trinidad 2 (MyFaces) и пытаюсь использовать f: param в командной кнопке

<tr:commandButton text="Submit" action={backingBean.actionSubmit}>
<f:param name="isSubmit" value="Yes" />
</tr:commandButton>

В основном я пытаюсь передать значение параметра для кнопки отправки и выполнить только проверкуесли нажата кнопка «Отправить», добавляется условие к обязательному атрибуту для элементов ввода, чтобы проверить наличие кнопки «Отправить».

Есть ли способ идентифицировать конкретное нажатие кнопки в JSF2 / Trinidad2, чтобы я мог проверить этонажмите кнопку в методе проверки.

Ответы [ 2 ]

0 голосов
/ 28 августа 2012

Вы можете использовать <tr:setActionListener/>.В вашем случае вы можете использовать что-то вроде:

<tr:commandButton text="Submit" action="#{backingBean.actionSubmit}">
  <tr:setActionListener from="submit" to="#{backingBean.pressedButton}" />
</tr:commandButton>

В основном вы используете его для копирования объекта из атрибута from в атрибут to.Обратите внимание, что вы также можете использовать EL в атрибуте from (#{someBean.someObject}).

В бэк-компоненте вам необходимо добавить String член с именем pressedButton (с getter и setter).Теперь вы можете использовать следующий код в вашем actionSubmit

if ("submit".equals(pressedButton))
{
  System.out.println("You pressed 'sumbit'");
}
0 голосов
/ 24 января 2012

Я использую JSF 1.2, но я думаю, что он работает в JSF 2.0 точно так же.

Для вашей кнопки command используйте actionListener вместо action.

<tr:commandButton text="Submit" actionListener={backingBean.actionSubmit}> 

В пределах вашего компонента вы можетеполучить идентификатор вашей кнопки:

public void actionSubmit(ActionEvent event)
{
   event.getComponent().getId();
}
...