1

我有以下 HTML 文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html 
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
>

<head>
<title>First Example JSF Program</title>
<head>

<body>
   Hello <h:outputText value="Darwin"></h:outputText>!
</body>
</html>

但输出应为“Hello Darwin!” 不会出现。只有“你好!” 出现。为什么是这样?没有错误,我确信它有所有必需的 JAR 文件 - 如果没有,它会抛出错误,对吗?

干杯

PS 这是一个 HTML 5 文件,有区别吗?

4

1 回答 1

2

如果您在浏览器地址中看到的请求 URL 与webapp 中定义的URL 不匹配<url-pattern>,则可能会发生这种情况,因此无法完成执行所有 JSF 工作的工作。FacesServletweb.xmlFacesServlet

如果您在浏览器中右键单击页面并执行View Source,您应该已经注意到 JSF<h:outputText>标记完全未处理。Web 浏览器无法识别 JSF 标记。它们应该由FacesServlet网络服务器中的 处理。它们应该生成正确的 HTML 代码,并且最终的 HTML 结果根本不应该包含任何 JSF 标记。

您需要确保您在浏览器地址中看到的请求 URL 与<url-pattern>webappFacesServlet中定义的web.xml. 想象它*.jsf就像

<url-pattern>*.jsf</url-pattern>

那么您应该需要将地址栏中的 URL 从 /some.xhtml 更改为 /some.jsf。

或者,您也可以直接将更改为web.xml映射FacesServlet*.xhtml

<url-pattern>*.xhtml</url-pattern>

这样您就不再需要摆弄虚拟 URL。

至于具有 HTML5 doctype 的文件,那绝对没有区别。我只会删除那个 XML 序言,因为它只对 XHTML doctype 有效。另请参阅是否可以将 JSF+Facelets 与 HTML 4/5 一起使用?

于 2012-11-22T15:08:11.433 回答