В чем различия между a h:commandButton и a4j:commandButton в JSF?

Можно ли ответить на этот вопрос здесь? Я знаю, что для a4j:commandButton существует отношение к ajax. Но когда я могу использовать h: commandButton и когда можно использовать a4j:commandButton.

Это ядро ​​этого вопроса можно сослаться на h:commandLink и a4j:commandLink.

Большое спасибо! Maik

2 ответа

Основано на Richfaces 3.3.3 Live Demo

a4j:commandButton похоже на стандарт h:commandButton, но выдает запрос Ajax с дальнейшим частичным обновлением страницы. Атрибут 'reRender' указывает на компонент (ы), которые должны быть повторно визуализированы в дереве компонентов и обновлены в DOM браузера после завершения Ajax Response.

В RichFaces 4

a4j:commandButton сочетает в себе стандарт h:commandButton с a4j:ajax.

Когда вы сравниваете документацию VDL для a4j:commanButton и h:commandButton, вы можете увидеть некоторые связанные с ajax атрибуты в a4j:commandButton: render, limitRender, onbeforedomupdate, onbegin, oncomplete (эти атрибуты не являются частью h:commandButton). Это означает, что оба могут быть использованы для действий и навигации по страницам, но a4j:commandButton имеет дополнительные атрибуты для специальных параметров ajax (особенно в случае, когда требуется частичный повторный рендеринг).


Примечание, связанное с ответом Spindizzy:
Навигация по страницам работает нормально с a4j:commandButton в RichFaces 3.3.x и RichFaces 4.x. Если у кого-то есть проблемы с навигацией по страницам, используя a4j:commandButton (в JSF 1.2 и очень старых RichFaces) тогда это можно исправить, добавив <redirect /> в navigation-case (face-config.xml)

A4j:commandButton существует начиная с версии 3.0.0 RichFaces, задолго до того, как стандартная реализация поддерживала Ajax.

Я всегда придерживался стандарта, поэтому используйте h:commandButton с поддержкой Ajax. Если вы не можете делать то, что хотите со стандартом, ищите альтернативы. Кнопка a4j имеет еще несколько функций.

Вариант использования для a4j:commandButton будет отображать панель, когда состояние бина изменилось без полной перезагрузки страницы.

Были некоторые проблемы, связанные с навигацией по страницам в старой версии RichFaces.

Другие вопросы по тегам