2013-11-10 34 views
0

我在netbeans中導入了一個jsf項目。我解決了所有分辨率問題,因爲這些庫已存儲在./lib文件夾中。JSF在瀏覽器中不輸出HTML

當我運行項目時,一行標題是可見的,但鏈接在瀏覽器中不可見。當我在瀏覽器中查看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> 

所以呈現的唯一的事情就是發動機的

原型我

什麼可能可能是錯的。 謝謝先進。

回答

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> 
+0

我有

 Faces Servlet javax.faces.webapp.FacesServlet 1   Faces Servlet /faces/*  
Rajan

+0

我有xhtml查看文件。 我在我的web.xml中有上述標籤。當我將url-pattern更改爲* .xhtml時,它發送相同的輸出 – Rajan

+0

爲* .jsf或* .xhtml(您在請求中使用的那個)添加一個servlet映射。如果您使用「http://..../test.jsf」訪問頁面,請添加* .jsf映射,如果您使用「http://..../test.xhtml」訪問它,請添加*。 xhtml映射。 – gonzaw

0

你的問題是你的請求沒有達到面向servlet。所以首先你需要確保你所有的配置&編碼是正確的發送請求到servlet。

如果你有jsf頁面的混合&其他頁面然後使用/faces/*.xhtml否則,如果所有頁面都是jsf頁面,那麼你也可以使用/ *。

JSF作爲表單請求工作,因此您需要添加表單標記< h:鏈接>元素,以便請求可以到達面向servlet。

0

好的,我跟進了我的同伴。相同的代碼在他們的電腦上工作,但不在我的電腦上工作。我的netbeans是7.1.1。我下載了最新的7.4 Java EE版netbeans。它向我展示了像jstl11這樣的屬性 - >庫中的一些錯誤,而不是在以前版本的netbeans中未顯示的classpath中。我沒有選中它。我也從框架部分取消選中RichFaces。現在它運行完美。

上面的答案很有幫助,因爲它們讓我明白代碼不是問題。它與配置和庫等有關。

感謝您的嘗試。