可以在较旧的JSF版本中使用新的Facelet标记库URI吗?

时间:2014-10-28 22:59:04

标签: jsf jsf-2 taglib

我在某处读到Facelet标记库URI从http://java.sun.com/jsf/*更改为http://xmlns.jcp.org/jsf/*,这意味着新的命名空间仅适用于新规范(JSF 2.2),或者它们可以或者应该在旧版本中使用,如2.0,2.1或1.x?

例如:

Library                 Old URI                             New URI
Composite Components    http://java.sun.com/jsf/composite   http://xmlns.jcp.org/jsf/composite
Faces Core              http://java.sun.com/jsf/core        http://xmlns.jcp.org/jsf/core
HTML_BASIC              http://java.sun.com/jsf/html        http://xmlns.jcp.org/jsf/html
JSTL Core               http://java.sun.com/jsp/jstl/core   http://xmlns.jcp.org/jsp/jstl/core
Facelets Templating     http://java.sun.com/jsf/facelets    http://xmlns.jcp.org/jsf/facelets

修改

让问题更容易理解,就像一段代码一样:

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml"  
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets"  
    xmlns:f="http://xmlns.jcp.org/jsf/core"  
    xmlns:h="http://xmlns.jcp.org/jsf/html">  
<h:head>  
    <title>test</title>  
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />  
    <link rel="stylesheet" type="text/css" title="Style" href="theme/stylesheet.css" />  
</h:head>  
<h:body>  
    <h:form id="form1" styleClass="form">  
        <h:inputText id="text1" styleClass="inputText"></h:inputText>  
    </h:form>  
</h:body>  
</html>   

以前的代码对JSF 2.0有效吗?注意taglibs:

xmlns:ui="http://xmlns.jcp.org/jsf/facelets"  
xmlns:f="http://xmlns.jcp.org/jsf/core"  
xmlns:h="http://xmlns.jcp.org/jsf/html"

感谢。

1 个答案:

答案 0 :(得分:0)

从我在此处看到的内容:http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/index.html,大多数taglib的规范名称保留http://java.sun.com/

但是,如上所述,您可以使用新的URI,因为它们创建了别名。