【发布时间】:2013-02-13 03:20:32
【问题描述】:
当像这样在 XPages 中定义一个元素时:
<xp:div id="chartSurface"></xp:div>
生成的 HTML 如下所示:
<div id="view:_id1:_id4:chartSurface"></div>
这是“必要的”,因为 ID 必须是唯一的,并且 JSF/XPages 元素可以重复多次。虽然我可以使用#{id:chartsurface} 获取客户端ID,但这使得寻址元素变得不必要地困难,因为“:”与CSS 伪选择器和d3js 之类的库发生冲突失败(尚未使用jQuery 对其进行测试,dojo.byId 似乎可以工作)。有没有办法告诉 JSF/XPages 使用不同的分隔符(例如 NONE 或 %),所以结果如下所示:
<div id="view_id1_id4chartSurface"></div>
<div id="view%_id1%_id4%chartSurface"></div>
额外问题:哪些分隔符可以保存以供使用?
【问题讨论】:
-
相关:Is it possible to change the element id separator in JSF? 我不知道这是不是重复的问题,因为我从未听说过 XPages。
-
@LuiggiMendoza 是的,重复。 XPages 是一个 JSF 实现,它在 IBM Domino 服务器上运行,并向其中添加服务器端 JavaScript 和 NoSQL 数据库,包括目录。但它有自己的曲折,所以可能只有 80% 重复。谢谢指出
-
不客气。请注意,init 参数仅适用于 JSF 2(因此请检查 XPages 是否基于 JSF 2)。
-
XPages 源自 JSF 1.1,但尽管实现了许多相同的功能,但仍偏离了 JSF 2 规范。
-
如您所说:控件可能在一页中重复。那么你对 ID 属性有什么坚持(反正不推荐)?您可以通过 styleClass 属性和在选择器中使用类来简化它。