バッキングBeanのプロパティへのバインドには、p:commandButton
というバインディングに問題があります。私は一般的なアイデアを示すために私のコードを単純化しようとしました。JSFコンポーネントをバッキングBeanのプロパティにバインドする方法
<h:form>
<h:outputText value="Title" />
<p:inpurText value="#{exampleBean.title}"
<ui:include src="list.xhtml">
<ui:param name="bean" value="#{exampleBean}">
</ui:include>
</h:form>
list.xhtmlは、私が欲しいの断片である:
ExampleBeanは
public class Wrapper {
public String name;
public String description;
public CommandButton button;
// Listener which changes button state
// Getters and setters
}
いるindex.xhtmlがメインのページです
public class ExampleBean {
public String title;
List<ExampleWrapper> list;
// Getters and setters
}
ExampleWrapperはPOJOであるバッキングBeanでありますいくつかの場所で再利用する:
<ui:composition ...>
<ui:repeat id="list" var="exampleWrapper" value="#{bean.list}">
<h:outputText value="#{exampleWrapper.name}"/>
<h:outputTextarea value="#{exampleWrapper.description}"/>
<p:commandButton id="button" binding="#{exampleWrapper.button}"
value="Button" />
</ui:composition>
だから、私は例外を取得: javax.el.PropertyNotFoundException:/list.xhtml ...バインディング= "#{exampleWrapper.button}":目標到達不能、識別子が 'exampleWrapper' がなければ
をゼロにすることを決議しますbinding
アトリビュートすべてが正常に動作して表示されます
なぜこのPOJOプロパティにボタンをバインドできますか?すべてのヘルプは、私はJSF UIコンポーネントのbinding
(およびid
)属性は、ビュービルド時に解決されるPrimefaces 3.0.1
他のリスナーからボタンの状態を変更するにはどうすればよいですか? – nikagra
代わりにそのための属性を使用してください。例えば。 #{exampleWrapper.disabled} "、など。 – BalusC
あなたの答えを見つけました。質問:http://stackoverflow.com/a/2456652/657792 – nikagra