2013-11-24 3 views
1

У меня есть 2 формы в facelet, 1.xhtmlБин проверки и 2 форма в facelet

<h:form> 
    <h:inputText id="id1" value="#{mBean.pr}"/> 
    <h:commandButton value="Submit" action="response"/> 
</h:form> 
<h:form> 
    <h:commandButton value="myCB" action="response"/> 
    <h:inputText id="id2" value="#{mBean.pr}"/> 
</h:form> 

pr поле прокомментированы @DecimalMin("5.00"). В этом случае достаточно, чтобы id1 или id2 содержит значение, большее или равное 5,00. Но рассмотрим следующую facelet 2.xhtml

<h:form> 
     <h:inputText id="id1" value="#{hello.sur}"/> 
     <h:inputText id="id2" value="#{hello.sur}"/> 
     <h:commandButton value="Submit" action="response"> 
     </h:commandButton> 
</h:form> 

В этом, как и id1id2 должно содержать значение, большее, то 5.00.

Я не понимаю, почему это происходит?

+1

Я не уверен, что вы имели в виду. Но из того, что я понял, в первом случае, когда вы используете две формы, когда вы отправляете определенную форму проверки, выполняется проверка значения в этой конкретной форме. Во втором случае, поскольку оба значения находятся в одной и той же форме, оба поля проверяются при отправке. Если это не то, что вы имели в виду, просим пояснить. – 757071

+2

Кажется, что вы как-то ожидаете, что все входы ** другой ** формы также отправляются, обрабатываются, конвертируются, проверяются и обновляются, когда вы отправляете определенную форму, это правда? Почему именно? HTML не работает именно так! – BalusC

+0

@BalusC точно! Я понимаю тебя, спасибо! –

ответ

1

Формы не работают таким образом. Когда вы отправляете определенную форму, только входы внутри форма отправляется, обрабатывается, конвертируется, проверяется и обновляется в модели. Формы представляются на основе каждой формы, а не на каждой странице. Страница может иметь несколько форм с совершенно разными обязанностями, например. форму входа и контактную форму. Когда вы отправляете форму для входа, было бы бессмысленно обрабатывать входные данные контактной формы и показывать на них ошибки проверки.

На самом деле, у вас также должен быть отдельный запрос/представление, поддерживающий бэкбон в форме. Это не техническое требование, а просто требование «хорошего дизайна».

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