Jsf facelet中的Bean验证和2表单
我在facelet中有两个表单,Jsf facelet中的Bean验证和2表单,jsf,jsf-2,bean-validation,Jsf,Jsf 2,Bean Validation,我在facelet中有两个表单,1.xhtml <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"/>
1.xhtml
<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>
<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>
在这种情况下,id1
和id2
必须包含大于5.00
的值
我不明白为什么会发生这种情况?表单不是这样工作的。提交特定表单时,模型中仅发送、处理、转换、验证和更新表单内部的输入。表单是按表单提交的,而不是按页面提交。一个页面可以有多个职责完全不同的表单,例如登录表单和联系表单。提交登录表单时,处理联系人表单的输入并在其上显示验证错误是没有意义的
实际上,每个表单还应该有一个单独的请求/视图范围的支持bean。这不是一个技术要求,只是一个“好的设计”要求。表单不是这样工作的。提交特定表单时,模型中仅发送、处理、转换、验证和更新表单内部的输入。表单是按表单提交的,而不是按页面提交。一个页面可以有多个职责完全不同的表单,例如登录表单和联系表单。提交登录表单时,处理联系人表单的输入并在其上显示验证错误是没有意义的
实际上,每个表单还应该有一个单独的请求/视图范围的支持bean。这不是技术要求,只是“良好设计”要求。我不知道你的意思。但据我所知,在第一种情况下,当您使用两个表单时,当您提交特定表单时,该特定表单中的值的验证检查已经完成。在第二种情况下,由于两个值的格式相同,因此在提交时会验证两个字段。如果这不是您的意思,请澄清。您似乎在某种程度上期望在您提交某个表单时,其他表单的所有输入也会被提交、处理、转换、验证和更新,这是真的吗?到底为什么?HTML不是那样工作的@巴卢斯克,没错!我很理解你,谢谢!我不知道你的意思。但据我所知,在第一种情况下,当您使用两个表单时,当您提交特定表单时,该特定表单中的值的验证检查已经完成。在第二种情况下,由于两个值的格式相同,因此在提交时会验证两个字段。如果这不是您的意思,请澄清。您似乎在某种程度上期望在您提交某个表单时,其他表单的所有输入也会被提交、处理、转换、验证和更新,这是真的吗?到底为什么?HTML不是那样工作的@巴卢斯克,没错!我很理解你,谢谢!