0
これは私の複合コンポーネントのXHTMLの一部ですJSF複合コンポーネントdisabled属性
<my:PartnerSelComp id="partnerSel" value="#{myBean.partner}" service="#{partnerService}" disabled="true"/>
最初にレンダリングされたコンポーネントはcode
コンポーネントがdisabled="true"
かかわらず、編集可能なイベントを表示されます指定された。しかし、最初のAjaxブラーイベントの後(私はupdate
だと思います)、正しい無効状態を取得します。バッキングコンポーネントの値を問い合わせるgetAttributes().get("disabled")
正しい値が表示されます。それはなぜです?コンポーネントの初期外観を設定するにはどうすればよいですか?
私はそれを修正できました。
@Override
public void encodeAll(FacesContext context) throws IOException {
Boolean b = (Boolean) getAttributes().get("disabled");
partnerCode.setDisabled(b);
super.encodeAll(context);
}
オリジナルの問題が何かを理解できれば嬉しいです。
によってこれが解決策だと思う理由を説明できますか? – Kukeltje
cc:属性の場合、ブール値で人生を複雑にする必要はありません。本当の| false stringまたはbooleanは同じです。 p:パネルの場合、p:ajaxを使用しているので、htmlではなくjsfコンポーネントを直接更新する必要があります。 – bilelovitch
複雑であるかどうか、ブール値を使用する**問題**でしょうか? (とdownvoteは私からのものではありませんbtw)。そしてなぜアイデアに「スパン」を与えるのか?私はあなたが間違っていると言っているわけではありません、私は学び、他の人のために詳細な情報を得ようと努力しています。 – Kukeltje