在表单中创建弹出窗口
Create a popup inside a form
我想在表单中包含一个弹出窗口。通常的做法是使用 2 种形式,例如:
<div class="wrapper" >
<h:form>
<h:panelGroup id="id1" layout="block">
<ui:include src= content1 />
</h:panelGroup>
</h:form>
</div>
<h:form id="modalId">
<ui:include src= popupContent >
</ui:include>
</h:form>
并在 content1 中呈现一个按钮,即包含弹出窗口的表单 "modalId"。
我在 "content1" 中包含的外部组件中有弹出窗体。由于弹出窗体位于另一个窗体内,因此呈现效果不佳。我该如何解决?我的想法是使用我所有 xhtml 视图通用的组件
我编写自己的组件的方式是依赖于外部形式的存在。也就是说,我没有在组件中包含任何表单元素。
如果需要引用外部表单元素,那么我只需将 from id 作为接口的属性之一传递。复合组件对这类东西非常有用:
<composite:interface>
<composite:attribute name="formId" type="java.lang.String" />
</composite:interface>
<composite:implementation>
<h:commandButton value="button" action="someaction">
<f:ajax execute="#{cc.attrs.formId}" render="#{cc.attrs.formId}" />
</h:commandButton>
</composite:implementation>
然后将其包含在外部形式中(假设 'comp' 是复合组件的名称空间,'modal' 是包含该组件的文件的名称):
<h:form id="myForm">
<comp:modal formId="myForm"/>
</h:form>
如果您不熟悉它们,请阅读本教程:
http://docs.oracle.com/javaee/6/tutorial/doc/giqzr.html
我想在表单中包含一个弹出窗口。通常的做法是使用 2 种形式,例如:
<div class="wrapper" >
<h:form>
<h:panelGroup id="id1" layout="block">
<ui:include src= content1 />
</h:panelGroup>
</h:form>
</div>
<h:form id="modalId">
<ui:include src= popupContent >
</ui:include>
</h:form>
并在 content1 中呈现一个按钮,即包含弹出窗口的表单 "modalId"。
我在 "content1" 中包含的外部组件中有弹出窗体。由于弹出窗体位于另一个窗体内,因此呈现效果不佳。我该如何解决?我的想法是使用我所有 xhtml 视图通用的组件
我编写自己的组件的方式是依赖于外部形式的存在。也就是说,我没有在组件中包含任何表单元素。 如果需要引用外部表单元素,那么我只需将 from id 作为接口的属性之一传递。复合组件对这类东西非常有用:
<composite:interface>
<composite:attribute name="formId" type="java.lang.String" />
</composite:interface>
<composite:implementation>
<h:commandButton value="button" action="someaction">
<f:ajax execute="#{cc.attrs.formId}" render="#{cc.attrs.formId}" />
</h:commandButton>
</composite:implementation>
然后将其包含在外部形式中(假设 'comp' 是复合组件的名称空间,'modal' 是包含该组件的文件的名称):
<h:form id="myForm">
<comp:modal formId="myForm"/>
</h:form>
如果您不熟悉它们,请阅读本教程: http://docs.oracle.com/javaee/6/tutorial/doc/giqzr.html