【发布时间】:2011-06-05 04:35:32
【问题描述】:
Faces Servlet 将 jsp 编译为工作目录中的 servlet 时,会生成 id,如 j_id_jsp_1024919151_1...
id 什么时候改变?我在同一台机器上试过,清理工作目录,还是一样。我在同一台机器上启动了另一个 Apache Tomcat,我得到了新的 id...
感谢斯蒂芬
【问题讨论】:
Faces Servlet 将 jsp 编译为工作目录中的 servlet 时,会生成 id,如 j_id_jsp_1024919151_1...
id 什么时候改变?我在同一台机器上试过,清理工作目录,还是一样。我在同一台机器上启动了另一个 Apache Tomcat,我得到了新的 id...
感谢斯蒂芬
【问题讨论】:
当您没有指定任何内容时,JSF 在生命周期内自动为组件生成 ID。如果您不想要此功能,请单独为所有组件设置 id 并为<h:form> 设置 id 也可以避免这种情况。
您自己设置 id 将在基于 Javascript 的验证中为您提供更多帮助,其中字段的值是使用 id 派生的
【讨论】:
ID 生成将取决于实现。我的意思是,您使用的任何 JSF 实现都将具有一种机制,用于根据对唯一标识“足够好”的变量生成 ID。可能:类名、html元素名等......
您可能需要检查参考实现的source code。
【讨论】:
发送到页面的id 属性值为client identifier。这是使用链接中定义的规则构建的,并将包括父 NamingContainer ids 和可能的视图命名空间。
您可以阅读有关使用 JSF 客户端标识符 here 的更多信息。
【讨论】: