2015年11月4日水曜日

PrimeFaceのバグ? 「Cannot find component with expression ":growl" referenced from "SampleListForm:datalist:deleteButton".」

【エラー】
「Cannot find component with expression ":growl" referenced from "SampleListForm:datalist:deleteButton".」
【概要】
PrimeFacesでエンティティからJSFファイルを自動生成した時に必ず出る。
テンプレートのバグ?

growlタグを追加すれば解決

【詳細】
以下のタグを<body>タグの直下に作成する。(id="growl")

<p:growl id="growl" autoUpdate="false"/>

update要素で:growlと指定しているがこれはどこのformにも属さないgrowlを示している。
同じタグ内(formとか)の場合は「:」をつけない。
別の親タグの中に置くときは「:anotherTagId:growl」とか
<p:commandButton id="deleteButton" icon="ui-icon-trash"  value="#{bundle.Delete}" 
actionListener="#{SampleController.destroy}" 
update=":growl,datalist" 
disabled="#{empty SampleController.selected}"/> 

IDは別にgrowlでなくてもいいけど。自動生成結果とずれるので面倒

【残課題】
そもそもPrimeFacesのテンプレートを直したほうがよさそう。

0 件のコメント:

コメントを投稿