栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

默认情况下,JSF生成不可用的ID,这些ID与Web标准的CSS部分不兼容

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

默认情况下,JSF生成不可用的ID,这些ID与Web标准的CSS部分不兼容

:
是被选择,因为这是对于可以被保证的是,终端用户将不会意外地在JSF组件ID使用它(这是被唯一明智的分隔符[验证 ,它可能通过用逸出它使用它在CSS选择

需要注意的是,HTML4规范说,结肠是一个 有效的价值

id
name
属性。因此,您对它与“ Web标准”不兼容的抱怨无济于事。

IDNAME 令牌必须以字母([A-Za-z])开头,然后可以跟任意数量的字母,数字([0-9]),连字符(“-”),下划线(“
_”) ,冒号(“:”)和句点(“。”)。

因此,唯一的问题是

:
CSS是CSS选择器中的特殊字符,需要转义。JS本身对冒号没有任何问题。该
document.getElementById("foo:bar")
工作完全正常。唯一可能的问题是在jQuery中,因为它使用CSS选择器语法。

如果确实需要,则始终可以

:
通过将
javax.faces.SEPARATOR_CHAR
上下文参数设置为eg
-
_
如下来更改默认的分隔符。你只需要保证你不使用JSF组件ID的角色的任何地方 你自己 (它没有得到验证!)。

<context-param>    <param-name>javax.faces.SEPARATOR_CHAR</param-name>    <param-value>-</param-value></context-param>

_
由另外的缺点,它在JSF出现自动生成的ID喜欢的方式有
j_id1
,因此你也应该确保 所有
NamingContainer
在整个JSF页面组件都有一个固定的ID而不是自动生成一个。否则,JSF将很难找到命名容器子代的名称。

我只会不推荐它。从长远来看,这令人困惑和脆弱。再想一想,普通JSF
Web应用程序中的独特元素本身通常已经不在表格或表中。它们通常仅代表主要布局方面。我要说,否则从一般的HTML /
CSS角度来看这是一个糟糕的设计。只需通过可重复使用的CSS类名而不是ID来选择它们。如果确实需要,可以始终将其包装为纯HTML格式,

<div>
否则
<span>
JSF不会在其ID之前添加ID。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/635217.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号