0

我在我的 netbeans 中导入了一个 jsf 项目。由于库已存储在 ./lib 文件夹中,因此我解决了所有分辨率问题。

当我运行项目时,可以看到一行标题,但在浏览器中看不到链接。当我在浏览器中查看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:c="http://xmlns.jcp.org/jsp/jstl/core">
    <h:head>
        <title>Prototype of Engine</title>
        <link rel="stylesheet" type="text/css" href="../includes/style.css" />
    </h:head>
    <h:body>
        <h1>Prototype I of Engine</h1>
        <h3><h:link outcome="auto_cleanse" value="Start Auto Cleansing"></h:link></h3>
        <h3><h:link outcome="data_transfer" value="Verify data for visit details"></h:link></h3>
        <h3><h:link outcome="itemized_bill" value="Assign revenue codes to items in itemized bill"></h:link></h3>
        <h3><h:link outcome="todo" value="TO DO List"></h:link></h3>
    </h:body>
</html>

所以唯一渲染的是

发动机原型 I

什么可能是错的。先谢谢了。

4

3 回答 3

2

如果您发布的是浏览器中的 HTML 源代码,那么就有问题了,因为它仍然具有与之关联的 JSF 标记(<h:link>例如,它仍然包含该标记)。基本上,服务器返回 XHTML 页面,而不是 HTML 页面。JSF Servlet 是读取 XHTML 页面并返回 HTML 页面的那个,因此您的请求很可能完全绕过了 JSF Servlet。

如果没有正确配置 JSF,就会发生这种情况。一定要在你的 web.xml 中有这个:

<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>     

<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>
于 2013-11-10T03:57:17.900 回答
0

您的问题是您的请求没有到达 faces servlet。所以首先你需要确保你的所有配置和编码都是正确的,以便向 servlet 发送请求。

如果您有 jsf 页面和其他页面的混合,则使用 /faces/*.xhtml 否则,如果所有页面都是 jsf 页面,那么您也可以使用 /*。

JSF 作为表单请求工作,因此您需要添加表单标记 <h:link> 元素,以便请求可以到达 faces servlet。

于 2013-11-10T11:40:54.683 回答
0

好的,我跟着我的同伴。相同的代码在他们的电脑上工作,但在我的电脑上却不行。我的 netbeans 是 7.1.1。我下载了最新的 7.4 Java EE 版 netbeans。它向我显示了属性-> 库中的一些错误,例如 jstl11 不在类路径中,而以前版本的 netbeans 没有显示这些错误。我取消选中它。我还从框架部分取消选中 RichFaces。现在它运行完美。

上面的答案很有帮助,因为它们让我清楚代码不是问题。它与配置和库等有关。

感谢您的尝试。

于 2013-11-10T14:54:57.297 回答