JSF ID的规则是什么?

时间:2011-05-12 01:35:08

标签: jsf

似乎我应该能够用半小时的时间搜索网页,但是因为我不能:

有效的JSF ID有哪些规则?

我读了一条乱码电子邮件,提示-_存在限制,但我收到IllegalArgumentExceptions,我认为这是由于ID。

修改

java.lang.IllegalArgumentException: 6a945017207d46fd82b3d3bb7d2795f1
at javax.faces.component.UIComponentBase.validateId(UIComponentBase.java:549)
at javax.faces.component.UIComponentBase.setId(UIComponentBase.java:351)
at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:151)

1 个答案:

答案 0 :(得分:18)

必须是有效的CSS identifierident here),并且不应该重复。

  

在CSS中,标识符(包括selectors中的元素名称,类和ID)只能包含字符[a-zA-Z0-9]和ISO 10646字符U+00A1及更高版本以及连字符({ {1}})和下划线(-);它们不能以数字开头,也不能以数字后跟连字符开头。标识符还可以包含转义字符和任何ISO 10646字符作为数字代码(请参阅下一项)。例如,标识符_可以写为"B&W?""B\&W\?"

另见:


更新:对于您感兴趣的案例,以下是"B\26 W\3F"提供的验证码源代码:

UIComponentBase#validateId()

然而,它比CSS规则更严格一些。它们也不能以连字符开头。