Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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
Netbeans JSF2模板本身显示样式,但模板客户端显示没有样式的纯文本_Netbeans_Jsf 2 - Fatal编程技术网

Netbeans JSF2模板本身显示样式,但模板客户端显示没有样式的纯文本

Netbeans JSF2模板本身显示样式,但模板客户端显示没有样式的纯文本,netbeans,jsf-2,Netbeans,Jsf 2,我第一次尝试使用JSF Facelet模板/Facelet模板客户端。我正在使用Netbeans 7.2.1创建模板和模板客户端。当我运行创建的JSF项目并调用http://localhost:8080/jpaweb/template.xhtml我可以看到模板样式,但当我调用客户端模板时http://localhost:8080/jpaweb/client.xhtml我看到的是没有样式的纯文本。这两个文件位于同一目录中,由Netbeans向导创建。请帮我解决这个问题 template.xhtml

我第一次尝试使用JSF Facelet模板/Facelet模板客户端。我正在使用Netbeans 7.2.1创建模板和模板客户端。当我运行创建的JSF项目并调用
http://localhost:8080/jpaweb/template.xhtml
我可以看到模板样式,但当我调用客户端模板时
http://localhost:8080/jpaweb/client.xhtml
我看到的是没有样式的纯文本。这两个文件位于同一目录中,由Netbeans向导创建。请帮我解决这个问题

template.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:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html">

    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <link href="./resources/css/default.css" rel="stylesheet" type="text/css" />
        <link href="./resources/css/cssLayout.css" rel="stylesheet" type="text/css" />
        <title>Facelets Template</title>
    </h:head>

    <h:body>


        <div id="top" class="top">
            <ui:insert name="top">Top</ui:insert>
        </div>
        <div>
            <div id="left">
                <ui:insert name="left">Left</ui:insert>
            </div>
            <div id="content" class="left_content">
                <ui:insert name="content">Content</ui:insert>
            </div>
        </div>
    </h:body>

</html>

Facelets模板
顶部
左边
内容
client.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:ui="http://java.sun.com/jsf/facelets">

    <body>

        <ui:composition template="./template.xhtml">

            <ui:define name="top">
                Welcome, to my website
            </ui:define>

            <ui:define name="left">
                My links
            </ui:define>

            <ui:define name="content">
                This page is created for testing
            </ui:define>

        </ui:composition>

    </body>
</html>

欢迎来到我的网站
我的链接
此页面是为测试而创建的
如果您有创建JSF项目和JSF模板的Netbeans,那么模板客户端将得到这个结果。我也尝试了NetBeans1.7.0。同样的问题

编辑:我运行页面不喜欢
http://localhost:8080/jpaweb/client.xhtml
但是像
http://localhost:8080/jpaweb/faces/client.xhtml
它成功了。我的项目中没有“faces”目录。我们必须在所有JSF链接中添加“面”吗


编辑2:我认为netbeans自动配置所有jsf文件都保存在faces目录中,即使我的项目中没有这样的目录。在projectproperties->Frameworks->javaserverfaces->Configuration中,有一个字段jsfservlet URL模式,其值为/Faces/*。我认为这意味着必须调用jsf文件,就好像它在faces目录中一样。试图强制它按我的项目中显示的方式工作是一个错误:)

您的客户端。xhtml内容文件的组成不正确。不要包含html标记,因为JSF不会从这里的
ui:composition
标记中解析任何内容

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
template="./template.xhtml">
        <ui:define name="top">
            Welcome, to my website
        </ui:define>

        <ui:define name="left">
            My links
        </ui:define>

        <ui:define name="content">
            This page is created for testing
        </ui:define>
</ui:composition>

欢迎来到我的网站
我的链接
此页面是为测试而创建的

我用你的模板进行了测试,结果很好。

解决了。将
Project properties->Frameworks->JavaServer Faces->Configuration->JSF Servlet URL模式的值从
/Faces/*
更改为
*.xhtml
,这样就可以了。

为了更好地理解具体问题,一些代码可能会有所帮助。请确保您发布了尽可能小的代码片段,这足以通过将所有内容设置为默认值的复制粘贴到一个完全空白的项目中来重新解释整个问题。您似乎是在生成代码而不是编写代码(这在您刚开始时是一个非常糟糕的主意,但是ala)。谢谢您的回答,但这不会改变任何事情,我认为它在构建项目时会自动创建faces目录,请看我的Edit和Edit 2