【问题标题】:Custom renderer for Radio Group / SelectOne does nothingRadio Group / SelectOne 的自定义渲染器什么都不做
【发布时间】:2016-08-22 02:10:45
【问题描述】:

广播组的 XPages 渲染器将所有内容都放入表格中,基本上很糟糕。我正在尝试使用自定义渲染器解决此问题。我已经尝试了很多东西,但现在我被卡住了,因为我根本没有进一步的信息。

我的渲染器在 faces-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 中没有输入任何控制台消息。

如果我将渲染器类型或渲染器类的名称更改为无效的名称......仍然没有。没有错误,没有输出。我不知道是否有什么东西在捕获我的错误并默默地处理它们,或者......什么?

我怎样才能找出我在这里做错了什么?如果你能告诉我我做错了什么,可以加分,但我真正想知道的是如何获得某种反馈来自己解决这个问题。

【问题讨论】:

    标签: jsf xpages jsf-1.2


    【解决方案1】:

    回答我自己的问题,以防其他人遇到这个......

    &lt;renderer&gt;...&lt;/renderer&gt; 标签需要放在&lt;render-kit&gt;&lt;/render-kit&gt; 标签内。你会认为我会在 4 小时的搜索中找到它,但没有。

    【讨论】:

    • 如果你开始的话,在 OpenNTF 上放点东西!我讨厌 XPages 为广播组制作的表格。谢谢,霍华德
    猜你喜欢
    • 1970-01-01
    • 2017-01-24
    • 2013-01-17
    • 1970-01-01
    • 2014-04-27
    • 2017-06-09
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多