Ajax 更新未使用 PrimeFaces 自定义渲染器

PrimeFaces custom renderer not used on Ajax update

我正在尝试编写一个更符合 WCAG 规则的 PrimeFaces 分页器。

原来第 link 页 (1 2 3 4 5) 不是 link,而是 <span> 有普通页码。我用 '' 包裹了这个数字,这样他们就可以集中注意力并在标题中解释这个 link 的用途。渲染器工作得很好,但是在使用它并更改页面(AJAX 请求)后,页面 links 呈现为旧样式。

这是为什么,如何解决?

我的渲染给出:

<span class="ui-paginator-pages">
    <span class="ui-paginator-page ui-state-default ui-state-active ui-corner-all">
        <a class="ui-paginator-page ui-state-default ui-state-active ui-corner-all" tabindex="10000" title="Link to page nr: 1">1</a>
    </span>
    <span class="ui-paginator-page ui-state-default ui-corner-all">
        <a class="ui-paginator-page ui-state-default ui-corner-all" tabindex="10001" title="Link to page nr: 2">2</a>
    </span>
</span>

更改页面后的结果是

<span class="ui-paginator-pages">
    <span class="ui-paginator-page ui-state-default ui-corner-all" tabindex="0">1</span>
    <span class="ui-paginator-page ui-state-default ui-corner-all ui-state-active" tabindex="0">2</span>
</span>

如您所见,更新后的结构就像普通 PrimeFaces 中一样。锚点消失了,标签索引回到 0

这种奇怪行为的原因是 AJAX 请求后的渲染页面是由 PrimeFaces 中定义的 Java 脚本代码完成的。这意味着在这种情况下覆盖默认渲染器必须在 Java 和 JavaScript 中完成。