2012-03-09 4 views
5

Я хочу представить (выполнить) значения из нескольких форм, а не только в форме. Итак, я хочу иметь возможность сделать что-то вроде этого:JSF: Выполнять значения нескольких форм

<h:form id="form1> 
    <h:inputText id="testinput1" value="#{testBean.input1}" /> 
</h:form> 

<h:form id="form2> 
    <h:inputText id="testinput2" value="#{testBean.input2}" /> 

    <h:commandButton value="Submit"> 
     <f:ajax execute=":form1 :form2"/> 
    </h:commandButton> 
</h:form> 

Как бы вы это решили?

What is <f:ajax execute="@all"> really supposed to do? It POSTs only the enclosing form , похоже, связано, но затрагивает несколько другую проблему, а также не решает ее (или это).

ответ

4

Ajax или нет, это невозможно с помощью простого JSF/HTML. Все входные элементы, которые необходимо обработать, действительно должны проходить внутри одной и той же формы.

+1

@Matt: это правильно. Однако для них атрибут 'render' имеет значение. – BalusC

+0

Спасибо за разъяснение, BalusC. Является ли это спецификацией или ограничением от html/js? –

+1

@Matt: спецификация никогда не заявляла, что '@ all' выполнит все формы. Технически это также невозможно (хотя JS легко справиться с этим путем слияния значений формы, но в JSF состояние представления и действие зависят от формы). IMO '@ all' никогда не должно было быть одним из доступных значений' execute'. Это не добавляет никакой ценности и только запутывает. – BalusC

Смежные вопросы