如何访问复合材料中的 jsf 复合材料的标记名?

Posted

技术标签:

【中文标题】如何访问复合材料中的 jsf 复合材料的标记名?【英文标题】:How can I access the tag-name of a jsf composite whitin the composite? 【发布时间】:2016-04-21 15:50:59 【问题描述】:

我有一个复合材料(如 xmlns:composite="http://java.sun.com/jsf/composite")。我通过

调用它
<comps:cimgx imgId="imA" flav="r" />

(例如)在页面上。有没有办法通过 javascript 引用此复合客户端生成的所有 html 对象?

类似

window.document.getElementsBy_magic_jsf_tagType("comps.cimagx");

编辑:或在合成中类似

#cc.JSF_tag_type_name

??

Edit2:关于我问这个问题的背景,请参阅Is it possible to add a javascript function to a h:form in jsf2?

【问题讨论】:

【参考方案1】:

JS 对负责生成 HTML 文档对象模型所基于的 HTML 输出的服务器端代码一无所知。这些信息必须以某种方式最终以 HTML 格式结束。对于抽象,请使用 CSS 类。

<cc:implementation>
    <div id="#cc.clientId" class="comp-cimgx">
        ...
    </div>
</cc:implementation>
var cimgxs = document.getElementsByClassName("comp-cimgx");

(注意:getElementsByClassName() 在 IE8 及更低版本中不支持,如果需要,请使用 jQuery 1.x)

另见:

Integrate JavaScript in JSF composite component, the clean way How to make same JSF Composite Component included multiple times to have its own javascript scope? How to select JSF components using jQuery? Select all items in Multiple SelectManyCheckBox with dynamic ids

【讨论】:

以上是关于如何访问复合材料中的 jsf 复合材料的标记名?的主要内容,如果未能解决你的问题,请参考以下文章

嵌套 JSF 复合组件中的 AJAX

JSF 2 - 如何将 Ajax 侦听器方法添加到复合组件接口?

如何在 JSF 2 中以编程方式或动态创建复合组件

JAR 中的 JSF 复合组件在 NetBeans 中无法识别

如何使用 JSF 复合组件使页面上的 id 唯一?

如何将验证器属性从 JSF2 复合组件传递给 h:inputText?