Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaServer Faces 2.2复合组件以封闭形式呈现<;html></html>;标签_Java_Jsf_Jsf 2_Jsf 2.2_Glassfish 4 - Fatal编程技术网

JavaServer Faces 2.2复合组件以封闭形式呈现<;html></html>;标签

JavaServer Faces 2.2复合组件以封闭形式呈现<;html></html>;标签,java,jsf,jsf-2,jsf-2.2,glassfish-4,Java,Jsf,Jsf 2,Jsf 2.2,Glassfish 4,在GlassFish 4上将项目从JavaServer Faces 2.1/Java EE 5迁移到JavaServer Faces 2.2/Java EE 7 web概要文件时,我遇到了无效的HTML代码,因为有额外的标记JSF代码中复合组件的每个实例 环境:Mojarra 2.2.0(GlassFish 4.0)、NetBeans 7.3.1、JDK 7 复制步骤: 使用JavaServerFaces创建一个新的“JavaEE7Web”项目,并选择JSF2.2ServerLibrary 在

在GlassFish 4上将项目从JavaServer Faces 2.1/Java EE 5迁移到JavaServer Faces 2.2/Java EE 7 web概要文件时,我遇到了无效的HTML代码,因为有额外的
标记JSF代码中复合组件的每个实例

环境:Mojarra 2.2.0(GlassFish 4.0)、NetBeans 7.3.1、JDK 7

复制步骤:

  • 使用JavaServerFaces创建一个新的“JavaEE7Web”项目,并选择JSF2.2ServerLibrary
  • 在index.html中,选择html正文文本(“来自Facelets的Hello”)并重构为复合组件
示例源代码:

index.html

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:ez="http://xmlns.jcp.org/jsf/composite/ezcomp">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <ez:test/>
    </h:body>
</html>

Facelet标题
test.xhtml

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:cc="http://xmlns.jcp.org/jsf/composite">

    <!-- INTERFACE -->
    <cc:interface>
    </cc:interface>

    <!-- IMPLEMENTATION -->
    <cc:implementation>
        Hello from Facelets
    </cc:implementation>
</html>

Facelets的你好
实际HTML输出:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head id="j_idt2">
        <title>Facelet Title</title></head><body><html xmlns="http://www.w3.org/1999/xhtml">

    <!-- INTERFACE -->

    <!-- IMPLEMENTATION -->
        Hello from Facelets

</html></body>
</html>

Facelet标题
Facelets的你好
这不是有效的HTML,因为还有另一个
存在。我的JSF代码中有错误吗?

尝试使用

<ui:component
    xmlns="http://www.w3.org/1999/xhtml"
.....
>

请参见此处的示例:

尝试使用

<ui:component
    xmlns="http://www.w3.org/1999/xhtml"
.....
>


请参见此处的一个示例:

进行此更改(并添加ui命名空间声明
xmlns:ui=”http://xmlns.jcp.org/jsf/facelets“
),页面现在呈现一个异常:
java.lang.NullPointerException位于com.sun.faces.util.Cache.get的java.util.ConcurrentHashMap.putIfAbsent(ConcurrentHashMap.java:1144)(Cache.java:116)位于com.sun.faces.application.view.FaceletViewHandlingStrategy.getComponentMetadata(FaceletViewHandlingStrategy.java:237)…
你在使用GF4吗?如果是的话,我强烈建议用最新的更新javax.faces jar,因为apckaged的jar有很多bug。你在名称空间和设置方面也遵循了上面的例子吗?将javax.faces更新为2.2.4修复了它,非常感谢您的改进(并添加ui命名空间声明
xmlns:ui=”http://xmlns.jcp.org/jsf/facelets“
),页面现在呈现一个异常:
java.lang.NullPointerException位于java.util.concurrent.ConcurrentHashMap.putIfAbsent(ConcurrentHashMap.java:1144)位于com.sun.faces.util.Cache.get(Cache.java:116)位于com.sun.faces.application.view.FaceletViewHandlingStrategy.getComponentMetadata(FaceletViewHandlingStrategy.java:237)…
你在使用GF4吗?如果是的话,我强烈建议用最新的更新javax.faces jar,因为apckaged jar有很多bug。你在名称空间和设置方面也遵循了上面的例子吗?将javax.faces更新为2.2.4修复了它,非常感谢你的提示