有些消息来源表明可以在JSF2.2页面中使用非突出的jsf:id属性。
https://weblogs.java.net/blog/edburns/archive/2012/11/01/html5-friendly-markup-jsf-22 http://www.apress.com/9781430244257
taglib描述符使用不同的URL。
来自博客:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:jsf="http://java.sun.com/jsf">
<head jsf:id="head">
从书中可以看出:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:jsf="http://xmlns.jcp.org/jsf">
<head jsf:id="head>
但是,在使用最新的JSF2.2实现(2.2.0-m15)时,标记描述符的两个URL都无法访问(CANNOT_FIND_FACELET_TAGLIB),从而导致部分未解析的html页面。
在哪里可以找到jsf标记库的正确URL?这些网址是否有某种索引?
答案 0 :(得分:2)
使用jsf:id
使用http://xmlns.jcp.org/jsf命名空间。这适用于表单输入。它不用在头标签上。例如,以下代码使用短名称jsf声明命名空间:
<html ... xmlns:jsf="http://xmlns.jcp.org/jsf"
...
<input type="email" jsf:id="email" name="email"
value="#{reservationBean.email}" required="required"/>
此处,jsf前缀放在id属性上,以便将HTML5输入标记的属性视为Facelets页面的一部分。
答案 1 :(得分:1)
后者是正确的定义。我不认为head
标记与JSF一起使用。使用JSF html
标记库。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:jsf="http://xmlns.jcp.org/jsf">
<h:head></h:head>
....
您通常将jsf:id
用于HTML5输入组件。有关信息和示例应用程序,请参阅Java EE 7 Tutorial section on HTML5/JSF pass-through。