JSF 2.0:如何用自定义渲染器覆盖基本渲染器?

2024-04-20

我正在尝试覆盖渲染器h:selectBooleanCheckbox(出于所解释的原因here http://www.i-coding.de/www/en/jsf/bug/selectbooleancheckbox-converter.html):

但是,我发现无法注册我的渲染器。我尝试在我的faces-config.xml:

<render-kit>
    <renderer>
        <component-family>javax.faces.SelectBoolean</component-family>
        <renderer-type>javax.faces.Checkbox</renderer-type>
        <renderer-class>com.myapp.CustomCheckboxRenderer</renderer-class>
    </renderer>
</render-kit>

我从中获取的价值观:

  • 组件系列:javax.faces.component.html.HtmlSelectBooleanCheckbox
  • 渲染器类型:javax.faces.component.html.SelectBooleanCheckboxTag

但这不起作用。

我也尝试详细地声明RenderKit:

<description>Custom renderers</description>
<render-kit-id>???</render-kit-id>
<render-kit-class>com.sun.faces.renderkit.RenderKitImpl</render-kit-class>

但正如你所看到的,我真的不知道从哪里获取价值render-kit-id或者如果render-kit-class无论如何都是正确的。

Mojarra 包里面有文件jsf-ri-runtime.xml但它没有声明渲染器。它只声明了一个RenderKitFactory,在其中我没有直接找到任何感兴趣的东西。

指针?


您的首字母<renderer>声明看起来不错,所以我在这里尝试了一下。

package com.myapp;

import java.io.IOException;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;

import com.sun.faces.renderkit.html_basic.CheckboxRenderer;

public class CustomCheckboxRenderer extends CheckboxRenderer {

    public CustomCheckboxRenderer() {
        System.out.println("CustomCheckboxRenderer <init>");
    }

    @Override
    public void decode(FacesContext context, UIComponent component) {
        System.out.println("CustomCheckboxRenderer decode()");
        super.decode(context, component);
    }

    @Override
    public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
        System.out.println("CustomCheckboxRenderer encodeBegin()");
        super.encodeBegin(context, component);
    }

    @Override
    public void encodeEnd(FacesContext context, UIComponent component) throws IOException {
        System.out.println("CustomCheckboxRenderer encodeEnd()");
        super.encodeEnd(context, component);
    }

}

效果很好。全部打印到标准输出。你的问题出在别的地方。我在 Tomcat 7.0.5 上使用 Mojarra 2.0.3。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSF 2.0:如何用自定义渲染器覆盖基本渲染器? 的相关文章

随机推荐

  • 无效的源反射宏:has_many:through

    我有这样愤怒的联想 融资 gt 事件 gt 子项目 gt 项目 我想通过所有程序访问last financings 所以代码是 class Fcp lt Program has many fcp subprograms foreign ke
  • 对齐 Google 地图标记片段中的文本

    我希望片段中的字符串与中心对齐 另外 代码片段中的换行符 n 被转换为空格 有没有办法插入换行符 我的相关代码 GoogleMap map map addMarker new MarkerOptions position pos title
  • MediaPlayer 的状态更改侦听器

    这张图中有很多states http developer android com reference android media MediaPlayer html StateDiagram 但使用标准监听器我只能监听一些基本状态 那么是否可
  • Excel 不应用 HTML 中的 mso-number-format

    这是我的情况 我有简单的 Excel OOXML 文件 http www filedropper com excel 1通过 Web 查询连接到我的服务器 所有带有日期的单元格都具有 常规 水平对齐方式 无对齐方式 和 MM DD YYYY
  • 如何在 json 文件中插入现有的 php 字符串文字?

    我有一个 php 脚本 它通过使用访问 json 文件file get contents 在 json 文件中 我们声明了一个 php 变量 请让我知道是否有任何方法可以解析 json 文件中的 php 变量 下面是代码 测试 json r
  • 在django中批量创建模型对象

    我有很多对象要保存在数据库中 所以我想用它来创建模型实例 使用 django 我可以创建所有模型实例 MyModel data 然后我想把它们全部保存下来 目前 我有类似的东西 for item in items object MyMode
  • 如何获取 ActionMailer 的 after_action 过滤器中的操作名称

    在下面的课程中 如何获取当前操作名称 即email confirmation password reset 在 的里面after action打回来add mandril headers class UserMailer lt Action
  • 是否有同时支持 RSS 和 ATOM 的 PHP 提要阅读器? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何跨多个域重用代码?

    我只是使用 Yii 框架构建了一个 CMS 框架 我想将 CMS 部署到多个域 home root www domain1 com home root www domain2 com home root www domain3 com ho
  • linux 多端口监听socket

    我正在用 C linux 编写一个多线程服务器应用程序 它必须侦听 2 个不同的端口号 例如侦听端口号 3000 和 4000 以便连接到它的不同客户端提供不同的功能 实际功能由工作人员执行 线程 主线程无限期运行并在新连接上产生新工作线程
  • 跨域属性的目的...?

    在图像和脚本标签中 我的理解是您可以访问其他域上的脚本和图像 那么什么时候使用这个属性呢 这是当您想要限制其他人访问您的脚本和图像的能力时吗 Images https developer mozilla org en US docs Web
  • 使用 java 构建 wsdl 的框架或工具

    JAVA中有没有什么优秀的工具来处理webservice或wsdl 是的 有一个标准化的API JAX WS http en wikipedia org wiki JAX WS 甚至集成到 Java 标准 API javax xml ws包
  • 延迟加载 Facebook Like 按钮脚本

    Google pagespeed 正在抱怨我的 facebook 之类的按钮脚本 我怎样才能推迟脚本 在初始页面加载期间解析了 45KiB 的 JavaScript 延迟解析 JavaScript 用于减少页面渲染的阻塞 http stat
  • 如何使用多个 ssh 密钥 [重复]

    这个问题在这里已经有答案了 GitHub 用户 我是 github 的新手 并且在 git 设置方面遇到一些问题 我在 github 上有 2 个不同用户的帐户 并且我在系统上设置了 git 2 次 First ssh文件夹 像往常一样 包
  • Hibernate @Enumerated 似乎被忽略

    我有课Person使用带有枚举的注释进行映射Sex指的是性别 是男性还是女性 让我们来看看 Entity Table name PERSON public class Person Id GeneratedValue strategy Ge
  • 无需切换 selenium webdriver 即可获取窗口标题

    有没有办法在不进行任何硒切换的情况下获取窗口标题 目前我正在使用下面的代码 public boolean switchToWindowByTitle String title String currentWindow driver getW
  • 是否可以打开 regedit 并使用 process.start 直接导航到特定键?

    我正在制作一个小工具 可以在注册表中写入一个密钥 其中一小部分只是为了方便起见 只需单击一个按钮即可立即导航到该密钥 我已经知道如何打开 regedit exe 但是有没有办法立即导航到我需要的密钥 我正在尝试与 System Diagno
  • 无法将 HAProxy 实现为 HTTPS 的转发代理

    我正在尝试使用 HAProxy 作为转发代理 它适用于 HTTP 但不适用于 HTTPS 下面是我的 HTTP HAProxy 配置 listen forward http proxy bind 80 http request do res
  • Pivot_longer 6 列至 3 列

    我知道我的问题很简单 但我整个早上都在尝试 但我无法解决这个问题 我有这个数据框 GeneID Gene Symbol01 Ratio 2h Ratio 6h Ratio 10h Ratio 24h Pvalue 2h 1 174 FUT
  • JSF 2.0:如何用自定义渲染器覆盖基本渲染器?

    我正在尝试覆盖渲染器h selectBooleanCheckbox 出于所解释的原因here http www i coding de www en jsf bug selectbooleancheckbox converter html