2017-01-17 10 views
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」でレンダリング:それを行うには、通常の方法は次のように2つの形態を持つことです。

"content1"に含まれる外部コンポーネントにポップアップフォームがあります。ポップアップフォームは他のフォームの内側にあるため、レンダリングされません。どうすれば修正できますか?アイデアは、私のすべてのxhtmlビューに共通のコンポーネントを使用することです

+0

ネストされたフォームはHTMLで許可されていません。):あなたがそれらに精通していない場合

<h:form id="myForm"> <comp:modal formId="myForm"/> </h:form> 

は、このチュートリアルを通過します。 jsfの問題ではなく、一般的なHTMLの問題 – Kukeltje

答えて

1

自分のコンポーネントを書く方法は、外部フォームの存在に依存することでした。つまり、コンポーネント内にフォーム要素は含まれていませんでした。 外部フォーム要素を参照する必要がある場合は、インターフェイスの属性の1つとして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は」複合コンポーネントのためのあなたの名前空間であると「モーダル」のコンポーネントを含むファイルの名前であることなどが http://docs.oracle.com/javaee/6/tutorial/doc/giqzr.html

関連する問題