Я работаю над усовершенствованным проектом. Существует родительский элемент <form>
. У меня есть файл XHTML, который входит в эту родительскую форму. Вложенный файл XHTML имеет <a4j:commandLink>
. Это действие не вызвано. Теперь это сработает, если я оберну его <a4j:commandLink>
внутри <h:form>
. Таким образом, вызывается действие родительской формы, а также действие <a4j:commandLink>
. Но формы гнездования не поощряются. Я не могу использовать действие родительской формы, потому что оно переходит к сервлету, и мое действие находится в объекте с нулевым состоянием . Я не могу получить доступ к bean-компоненту в сервлете. Любая помощь в том, как совершить звонок без <h:form>
высоко ценится. Вот как это выглядит:<a4j: commandLink> действие не запускается внутри <form>
<form id="parentFormId" name="parentFormId" action="aservletaction">
<a4j:outputPanel id="includedRegion">
<ui:include src="setupView.xhtml"></ui:include>
</a4j:outputPanel>
</form>
Содержание setupView.xhtml:
<ui:composition>
<a4j:outputPanel>
<h:form>
<a4j:commandLink action="#{myBean.actionMethod}"
render="adatatableid" limitRender="true"/>
</h:form>
</ui:composition>
Спасибо Махиэль. Это сработало. Мне не нужно использовать вокруг commandLink. Таким образом, он вызывает действие bean. Единственным недостатком является то, что он по-прежнему отправляет родительскую форму. –
Не может ли родитель быть '' хотя? Точка командыLink заключается в том, что она берет на себя функциональность формы (т. Е. Вы определяете действие для ссылки, а не для формы). Что обычно для этой родительской формы для отправки? –
Makhiel
К сожалению нет, я не могу сохранить родительскую форму как ''. Страница довольно большая, с множеством вызовов сервлетов, и каждый другой подчиненный должен пройти действие формы. Я просто изучил детали вызова POST в firebug. Все содержимое формы входит в состав вызова POST. Но я вижу, что javax.faces.partial.ajax = true. –