#java #jsf #richfaces
#java #jsf #богатые грани
Вопрос:
На панели расширенных вкладок есть режим переключения сервера, при использовании этого режима что происходит, то есть, если я помещаю форму на каждую вкладку, я ожидаю, что будет опубликована только эта форма и не будет вызвано действие.Но действие = "#{licenseIMC.downloadRequest}"
вызвано .И что произойдет, если я помещу всю панель вкладок в одну форму.
<rich:tab id="updateLicensesTab" label="Update licences">
<h:form id="updateLicensesForm">
<h:outputText value="Request file" />
<a4j:htmlCommandLink id="request"
action="#{licenseIMC.downloadRequest}"
value="Generate License Request"
title="Generate License Request" />
Комментарии:
1. Что вы имеете в виду, говоря «опубликована только эта форма и не вызывается действие»? Что именно произойдет, если вы нажмете на ссылку? Он не отправляет форму?
Ответ №1:
Режим переключения влияет на то, что происходит, только если вы переключаетесь с одной вкладки на другую. Режим сервера означает, что он будет перезагружать вкладку (и страницу) каждый раз, когда вы переключаетесь на нее. Режим ajax означает, что он перезагрузит вкладку, но не страницу. А режим клиента означает, что он не будет перезагружать данные с сервера. Сервер и режим ajax имеют смысл только в том случае, если ваши базовые данные могли измениться, и вы хотите отразить эти изменения при переключении вкладки.
Если вы поместите все вкладки в одну форму, все вкладки будут отправлены, если вы выполните отправку формы (например, выполните htmlCommandLink).
Комментарии:
1. я хочу знать, переключилась ли панель вкладок с типом переключения сервера, и форма, содержащая эту вкладку, размещена на сервере, почему метод #{foo.dosomething} вызывается как щелчок по нему. Я хочу, чтобы только значения в отправленной форме обновляли модель данных без запуска кнопки, командной строки, … действий.
Ответ №2:
В ответ на ваш вопрос и ваш комментарий к ответу Морджи: отдельные действия командных кнопок и ссылок внутри вкладок выполняться не будут. Однако действие, указанное в теге tab, будет запущено.
В вашем примере htmlCommandLink
не будет запущено и downloadRequest()
не вызывается, но если бы у вас было:
<rich:tab id="updateLicensesTab" label="Update licences" action="#{licenseIMC.tabChange}">
<h:form id="updateLicensesForm">
затем будет вызвана tabChange
функция.