2012-11-22 50 views
1

我有以下的HTML文件:「您好!達爾文爲什麼此文本沒有出現在JSF中?

<?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> 

但產量,預計將不會出現。只有'你好!'出現。爲什麼是這樣?沒有錯誤,我確定它有必要的所有JAR文件 - 如果沒有,它會引發錯誤?

Cheers

P.S.這是一個HTML 5文件,這是否有所作爲?

回答

2

如果你在瀏覽器的地址看到該請求的URL在web應用程序的web.xml,因此FacesServlet definied不匹配FacesServlet<url-pattern>可能發生無法做到執行所有JSF工作的其工作。

如果你在瀏覽器中點擊右鍵並執行查看源代碼,你應該注意到JSF <h:outputText>標記是完全未處理的。 JSF標籤不被網頁瀏覽器識別。它們應該由網絡服務器中的FacesServlet進行處理。他們應該生成正確的HTML代碼,最終的HTML結果根本不應該包含任何JSF標記。

您需要確保瀏覽器地址中顯示的請求URL與webapp的web.xml中定義的FacesServlet<url-pattern>相匹配。想象一下,它是*.jsf等作爲

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

,那麼你應該需要從/some.xhtml在地址欄URL更改爲/some.jsf。

或者,您也可以只改變web.xml映射FacesServlet*.xhtml直接

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

,這樣你就不需要使用虛擬網址,搗鼓了。

至於有HTML5文檔類型的文件,沒有,絕對沒有區別。我只會刪除該XML序言,因爲它僅適用於XHTML doctype。也見Is it possible to use JSF+Facelets with HTML 4/5?

+0

這是可以理解的 - 我修復了web.xml文件,但現在我得到一個HTTP:404錯誤 Katana24

+1

@ Katana24檢查你用來訪問你的頁面的URL,它可能是你用'/ faces/yourpage.xhtml',現在只需要使用'/ yourpage.xhtml'。 –

相關問題