【发布时间】:2013-07-08 13:38:21
【问题描述】:
我有 1 个很长的表单需要拆分,但它被提交并验证为一个。
我已将其拆分为 tr:panelTabbed 部分,每个部分显示一组字段。
验证消息会在第一个选项卡中正确显示,但如果选中其他选项卡之一,则不会显示其验证消息。
Tabbing 回到原来的,它的验证消息也不会显示。
有没有办法解决这个问题?
看起来标签界面一次只生成一个标签,并且需要为每个标签重新加载页面。
或者,有没有更好的方法来分解大型表格?我不太喜欢“火车”导航的外观,但它会在这里实现目标吗?
编辑:我正在使用 Myfaces 和 Trinidad,由于公司准则,我无法使用其他组件库。
编辑:我已经发布了 XHTML:
<ui:define name="output">
<div id="container">
<tr:panelTabbed position="above">
<tr:showDetailItem text="#{odMessages['MSG_ORDER_DESK_SECTION_LABEL_EVS']}" rendered="#{taskHandler.task.evsDisplayInOD}">
<!-- Tab 1-->
<tr:panelCaptionGroup captionText="#{odMessages['MSG_ORDER_DESK_SECTION_LABEL_EVS']}" rendered="#{taskHandler.task.evsDisplayInOD}">
<snip for brevity>
</tr:panelCaptionGroup>
</tr:showDetailItem>
<tr:showDetailItem text="General Order Information" disabled="#{taskHandler.task.evsDisplayInOD}" disclosed="true">
<!-- Tab 2-->
<tr:panelCaptionGroup captionText="#{odMessages['MSG_ORDER_DESK_SECTION_LABEL_REP']}">
<tr:panelFormLayout>
<snip>
</tr:panelFormLayout>
</tr:panelCaptionGroup>
<tr:spacer height="15px"/>
<tr:panelCaptionGroup captionText="#{odMessages['MSG_ORDER_DESK_SECTION_LABEL_CMR']}">
<tr:panelFormLayout>
<snip>
</tr:panelFormLayout>
</tr:panelCaptionGroup>
</tr:showDetailItem>
<tr:showDetailItem text="#{odMessages['MSG_ORDER_DESK_SECTION_LABEL_PO']}" disabled="#{taskHandler.task.evsDisplayInOD}" disclosed="true">
<!-- Tab 3 -->
<tr:panelCaptionGroup captionText="#{odMessages['MSG_ORDER_DESK_SECTION_LABEL_PO']}">
<h:panelGroup styleClass="group">
<snip>
</h:panelGroup>
<h:panelGroup styleClass="group">
<snip>
</h:panelGroup>
<h:panelGroup styleClass="group">
<snip>
</h:panelGroup>
</tr:panelCaptionGroup>
<tr:spacer height="15px"/>
<tr:panelCaptionGroup captionText="#{odMessages['MSG_ORDER_DESK_SECTION_LABEL_PO']}">
<h:panelGroup styleClass="group">
<snip>
</h:panelGroup>
<h:panelGroup styleClass="group">
<snip>
</h:panelGroup>
<h:panelGroup styleClass="group">
<snip>
</h:panelGroup>
</tr:panelCaptionGroup>
</tr:showDetailItem>
<tr:showDetailItem text="Translation Information" disabled="#{!taskHandler.task.translation.required}">
<ui:include src="ToDo_ICN_trans.xhtml"/>
</tr:showDetailItem>
</tr:panelTabbed>
<h:outputScript name="script/orderDeskPODocument.js"/>
</div>
</ui:define>
<ui:define name="input">
...
</ui:define>
【问题讨论】:
-
也许使用向导组件会更好。
-
能不能把xhtml代码...
-
感谢您的快速回复!我已经发布了 XHTML(编辑删除了一堆东西,所以它不会太长)。关于使用向导组件,您能详细说明一下吗?我不知道这个组件抱歉!
-
是一个primefaces组件。
-
哦,好的。抱歉,我没有澄清,但由于公司准则,我不能使用它。只允许使用 MyFaces 和 Trinidad 组件。
标签: validation jsf-2 myfaces trinidad