Вызов метода <h: commandLink> с использованием <f: ajax>

У меня есть следующий код:

<h:commandLink action="#{testBean.showSomething}">
    Do Stuff
</h:commandLink>

который делает то, что я хочу (измените состояние testbean и перезагрузите страницу, на которой будет отображаться другой набор div. из-за их "визуализированных" свойств) Теперь я хочу использовать ajax для выполнения этого, поэтому я сделал это:

<h:commandLink action="#{testBean.showSomething}">
    <f:ajax event="click" render=":content" />
    Do Stuff
</h:commandLink>

Однако это приводит к тому, что метод showSomething даже не вызывается. ИМХО, что я хочу сделать, довольно просто, но я не могу понять, как это сделать.

Ответ 1

Вам нужно использовать event="action" вместо event="click". Вы могли бы вообще опустить это. Это событие по умолчанию, которое прослушивает <f:ajax> при вложении в компонент UICommand.

<h:commandLink action="#{testBean.showSomething}">
    <f:ajax render=":content" />
    Do Stuff
</h:commandLink>