使用 jsf2(参见maven 依赖项)
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.1.10</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1.10</version>
</dependency>
<dependency>
<groupId>com.sun.facelets</groupId>
<artifactId>jsf-facelets</artifactId>
<version>1.1.14</version>
</dependency>
我发现 ui:repeat 标签没有使用 jsf 的配置。如果我在web.xml中重新定义分隔符
<context-param>
<param-name>javax.faces.SEPARATOR_CHAR</param-name>
<param-value>_</param-value>
</context-param>
a <ui:repeat>呈现 a :无论如何,这就是为什么我不能使用 jquery 在我的自定义组件中查找 div 的 Id:
<a href="#" onclick="toggleDiv('#{cc.clientId}Div')">
<h:outputText value="#{cc.attrs.value}" />
</a>
<div id="#{cc.clientId}Div" style="display: none">...</div>
该组件的 HTML 结果为:
<a href="#" onclick="toggleDiv('j_idt12:0_j_idt18_0_j_idt24Div')">123456</a>
<div id="j_idt12:0_j_idt18_0_j_idt24Div" style="display: none">
...
</div>
如您所见,在 j_idt12:0_j... 中有一个 : 使 jquery 函数无效。我能做些什么呢?有没有办法设置一个特殊的 ui 分隔符?