Kor*_*bOK 4 jsf facelets xml-namespaces
我有这个:
<html
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
>
<h:selectOneRadio>
<f:selectItem value="1" itemValue="1" itemLabel="123"/>
<f:selectItem value="2" itemValue="2" itemLabel="321"/>
</h:selectOneRadio>
Run Code Online (Sandbox Code Playgroud)
我得到了这个:
<f:selectItem value="1" itemValue="1" itemLabel="123"></f:selectItem>
<f:selectItem value="2" itemValue="2" itemLabel="321"></f:selectItem>
<select name="j_idt5" size="1"></select>
Run Code Online (Sandbox Code Playgroud)
为什么xmlns:f="http://xmlns.jcp.org/jsf/core"
标签没有呈现?
我在Netbeans 7.3上使用JBoss AS 7.
http://xmlns.jcp.org
JSF 标记库URI中的新XML命名空间域是在JSF 2.2中引入的,它是Java EE 7的一部分.JBoss AS 7是一个兼容Java EE 6的应用程序服务器,不附带JSF 2.2捆绑,但使用JSF 2.1.因此,新的XML命名空间域根本不起作用.此外,新的JSF 2.2特定功能(如直通元素和属性)根本不起作用.
您需要使用JSF 2.1兼容的XML命名空间域http://java.sun.com
.这是完整的集合:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
Run Code Online (Sandbox Code Playgroud)
我不确定您为什么尝试使用新的JSF 2.2 XML命名空间.也许您错误地阅读了JSF 2.2目标教程(例如Oracle Java EE 7教程)而不是JSF 2.0/2.1目标教程(例如Oracle Java EE 6教程).请注意版本匹配.
如果你真的打算在JBoss服务器上使用JSF 2.2,那么基本上你应该将旧的JBoss AS 7升级到兼容Java EE 7的后续版本WildFly 8.或者,按照此处的说明手动将JBoss AS 7的捆绑JSF库升级到更新版本:在JBoss AS/EAP/WildFly中升级JSF/Mojarra.