Jsf 从复合零部件中删除自动生成的j_id

Jsf 从复合零部件中删除自动生成的j_id,jsf,composite-component,Jsf,Composite Component,我喜欢JSF2.0复合组件设置。我喜欢的另一件事是prependId=false。在cc:interface或cc:implementation中是否可以定义一个等价物来阻止jsf创建一个j_id来前置复合组件中定义的id 这是不可能的。只需给组件一个固定的id,而不是让JSF自动生成一个。顺便提一下,这同样适用于表格。这样,您仍然可以使用CSS选择器来选择它们 或者更好,只需给他们一个styleClass,这样您就不需要按ID选择,因为这种厌恶实际上是由于无法按客户机ID选择组件/元素造成的,

我喜欢JSF2.0复合组件设置。我喜欢的另一件事是prependId=false。在cc:interface或cc:implementation中是否可以定义一个等价物来阻止jsf创建一个j_id来前置复合组件中定义的id

这是不可能的。只需给组件一个固定的id,而不是让JSF自动生成一个。顺便提一下,这同样适用于表格。这样,您仍然可以使用CSS选择器来选择它们


或者更好,只需给他们一个styleClass,这样您就不需要按ID选择,因为这种厌恶实际上是由于无法按客户机ID选择组件/元素造成的,我看不出其他可行的原因。

这会起作用。我从创意部门得到了所有的html,如果能够使用他们的ID就好了,但我打赌如果我让他们知道格式,他们会在未来的项目中更改它们。请注意,默认的JSF分隔符:在CSS中是非法的。您必须将其作为\3A和后面的空间来逃离。但是,在JSF2.0中,您可以在web.xml中将其配置为javax.faces.SEPARATOR_CHAR context参数。例如,使用-并确保您不会在固定ID的其他位置使用它。非常酷。我们的样式表中充满了\3A,因此替换它们会很好。非常正确,但只是作为参考:使用jQuery时,可以通过转义来选择默认冒号,如$some\\\:id.focus;对于@Arjan:or$[id='some:id']。另请参见您的问题给我答案:tks for prependId=错误提示