2012-02-13 11 views
1

から定義されたフォームの内容私は私のウェブアプリで少し問題を抱えていますが、基本的に私は警告メッセージを得続ける:更新UI:マスターテンプレート(JSF&Primefaces)

INFO:識別子を持つコンポーネントを見つけることができません"formName"が表示されます。

私はこれがなぜ起こっているのか知っていますが、その解決策がより優れているかどうかを判断する必要があります。

基本的に私はさまざまなCRUD機能を持つ<p:dialog>コンポーネントの数を含むマスターテンプレートファイルを持っています。ユーザーがこれらのコンポーネントと対話するとき、私は組み込みのprimefaces 'update'関数を使用して、<ui:defined>ページの様々なフォーム/コンポーネントを素早く更新します。しかし、JSF web-app(つまりMasterテンプレートとUI:定義済みのWebページ)のレイアウトと、これらのコンポーネントをMasterテンプレートファイルに定義しているため、更新可能なフォーム/コンポーネントは必ずしも必要ではありません上記の警告メッセージを表示します。例については

:< p:dialog id="componentA" />と呼ばれるコンポーネントでmaster.xhtml:

私は私のマスターテンプレートファイルを持っていた場合。そして、私は<h:form id=page1Form/>とpage1.xhtmlを持っていたと同様に私は<h:form id=page2Form/>と両方のpagecopedバッキングBeanによって提供された情報を含むpage2.xhtmlを持って、何がCRUD操作が発生した場合にこれらのフォームが更新されるようにする最良の方法componentAを使用していますか?現時点では私は単に< p:dialog id="componentA" update="page1Form, page2Form" />を使用していますが、ページ1またはページ2のみが表示されているため、Tomcatは上記のメッセージを吐き出します。ですから、私は現在のページに依存して更新するためにフォーム/コンポーネントを動的に指定することができますか、または<ui:define>ページごとにcomponentAを指定する必要があります(これはHTML /コードの繰り返しが多く、特に管理しません)現在のビュー内のすべてのフォーム/コンポーネントを更新する方法?それとも、私が正しいことをしているのですか?web.xmlで開発モードをオフにしてメッセージを停止する必要がありますか?誰もがこのスレッド時につまずく場合

乾杯

アリー

+1

h:formをプルアップしてui:insertの周りに配置できますか?このようにフォームはページの静的な部分であり、常にそこにあります。 – mrembisz

+1

私はui:paramタグを使って、あなたが現在いるページに応じて更新するフォーム/コンポーネントを動的に設定できると思います。 – Ally

+0

あなたの構造に合っていれば良いでしょう。 – mrembisz

答えて

3

ただ、確定します。私は<ui:param name="paramName" value:"a value"/>の値を使って上記の問題を解決しました。あなたのマスターテンプレート・ファイル内の基本的

あなたのようなあなたのコンポーネントを指定することになり、すなわち

<p:commandButton value="Submit" action="#{someBean.doSomeStuff()}" 
update="#{paramName}" /> 

その後、あなたは、単に状態のparamの名前とその値あなたの<ui:composition>ページで:

<ui:param name="paramName" value="someForm someOtherForm"/> 

ジョブgoodun!