извините, если я являюсь толстым, но каково выполнение = "все" в теге f:ajax, который, как действительно предполагают, сделал? Я ожидал, что это отправит все элементы на странице, но это кажется POST только значениями в форме включения, не всех формах на странице.
Например,
<h:body>
<h:form id="form1">
Input1/Form1 <h:inputText id="testinput" value="#{testBean.input1}" />
</h:form>
<h:form id="form2">
Input2/form2 <h:inputText id="testinput2" value="#{testBean.input2}" />
<h:commandButton value="Ok" actionListener="#{testBean.al}">
<f:ajax execute="@all" />
</h:commandButton>
</h:form>
</h:body>
Только form2 отправляется по щелчку.
Используя mojarra 2.0.2..
Вы пробовали это?
<f:ajax execute="form1 form2" />
Отправляет ли он данные обеих форм, если вы явно упоминаете их?
AFAIK, вы правы: @all представляет всю страницу.
Это должно быть execute = ": form1 form2" (если у вас есть разделитель по умолчанию), но в любом случае нет, это не так. Он отправляет только второй.
Если вы укажете @all в первой форме, она отправит только первую. По крайней мере, в Safari 5 / Firefox 3.6.3 в любом случае. Думаю, чтобы узнать больше, нужно взглянуть на javascript mojarra.