ラジオグループ用のXPagesレンダラは、すべてをテーブルに格納しますが、基本的にひどいです。私はこれをカスタムレンダラで修正しようとしています。私は多くのことを試しましたが、今私は単に情報を一切持っていないので、私は立ち往生していません。ラジオグループ/ SelectOne用のカスタムレンダラは何もしません
私のレンダラはそうのような顔-config設定で宣言されています。
<renderer>
<component-family>javax.faces.SelectOne</component-family>
<renderer-type>itd.alcs.controller.Radio</renderer-type>
<renderer-class>itd.alcs.controller.RadioGroupRenderer</renderer-class>
</renderer>
<renderer>
<component-family>javax.faces.Input</component-family>
<renderer-type>itd.alcs.controller.Radio</renderer-type>
<renderer-class>itd.alcs.controller.RadioGroupRenderer</renderer-class>
</renderer>
マイレンダラコードは次のとおりです。私はこのレンダラー型を適用すると
public class RadioGroupRenderer extends com.ibm.xsp.renderkit.html_basic.RadioRenderer {
public RadioGroupRenderer() {
System.out.println("RadioGroupRenderer");
}
@Override
public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
System.out.println("encodeBegin");
super.encodeBegin(context, component);
}
@Override
public void encodeEnd(FacesContext context, UIComponent component) throws IOException {
System.out.println("encodeEnd");
Writer writer = context.getResponseWriter();
XspSelectOneRadio tcomponent = component instanceof XspSelectOneRadio ? (XspSelectOneRadio) component : null;
if (tcomponent == null) {
System.out.println("Nothing");
writer.write("Nothing");
}
if (tcomponent.isReadonly()) {
// writer.write(tcomponent.getValue().toString());
System.out.println("Read Only");
writer.write("Read Only");
} else {
//super.encodeEnd(context, component);
System.out.println("Edit");
writer.write("Edit");
}
}
}
何かが起こっています。そして、何か私は出力が得られないということです。私の返答には何もありません。コンソールにエラーはありません。私がコンストラクタまたはencodeBeginまたはencodeEndに入れたコンソールメッセージはありません。
レンダラータイプまたはレンダラークラスの名前を無効なものに変更すると...何も表示されません。エラーも出力もありません。私は何かが私のエラーをトラップしているかどうかわからないし、それらを静かに扱うか...何?
ここで間違っていることをどのように把握できますか?私が間違っていることを教えてもらえればボーナスポイントがありますが、私が本当に知りたいのは、このトラブルシューティングのために何らかのフィードバックを得る方法です。
もしあなたがそれを得るなら、OpenNTFに何かを載せてください!私は、XPagesがラジオ・グループ用にしているテーブルが嫌いです。ありがとう、ハワード – Howard