在使用ui:include
包含多个子页面的情况下h:form
标记应该在哪里?
表单应该在父目录中(A.xhtml和B.xhtml)?
A.xhtml摘录
<h:form>
<ui:include src="B.xhtml" />
<ui:include src="other.xhtml" />
</h:form>
B.xhtml exerpt
<ui:composition>
tag contents here
</ui:composition>
表格应该在每个孩子中(C.xhtml和D.xhtml)?
C.xhtml摘录
<ui:include src="D.xhtml" />
<ui:include src="other.xhtml" />
D.xhtml摘录
<ui:composition>
<h:form>
</h:form>
</ui:composition>
如果您可以详细说明如何使用Richfaces形式的变体以及在第一个示例中如何使用区域来隔离每个子文件,那么可以使用互联网点。
另外,嵌套是否有可能?这就像让A.xhtml使用D.xhtml。
答案 0 :(得分:3)
首先,你无法嵌套表格。否则,它在很大程度上取决于您的页面结构,逻辑和操作按钮/链接放置。
当触发操作时,它将向服务器提交其所包含的表单内容。因此,当表单内容对应于某些有意义的一起发送的业务实体时,这是很好的。一种极端的方法是为整个页面创建单个表单。它将在每次用户交互时提交所有输入。在某些情况下它可能有意义,但如果您的页面包含几个逻辑上不同的区域,我宁愿将它们分成不同的形式。
在使用ui时,我不认为有任何额外规则适用:include,这是可能的组合技术之一,而表单布局似乎更多的是业务结构驱动。