2010-06-08 41 views
7

我的服務器是GlassFish v3的,我的瀏覽器是火狐3.6.3和我使用的Netbeans 6.8 我的問題是,爲什麼在文本框沒有出現在我的瀏覽器了。我只看到標籤。JSF表沒有顯示出來

<?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://java.sun.com/jsf/html" 
       xmlns:f="http://java.sun.com/jsf/core"> 
      <h:head> 
       <title>Lookup</title> 
      </h:head> 
      <h:body> 
       <fieldset> 
       <legend>Enter Your Customer ID</legend> 
       <p>Legal ids are id001, id002, and id003.</p> 
       <f:view> 
       <h:form> 
        Customer ID: 
        <h:inputText value="#{bankForm.customerId}" /> 
        <h:commandButton value="Show Current Balance" 
            action="#{bankForm.findBalance}" /> 
       </h:form> 
       </f:view> 
       </fieldset> 
      </h:body> 
    </html> 

的web.xml中

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
    <context-param> 
     <param-name>javax.faces.PROJECT_STAGE</param-name> 
     <param-value>Development</param-value> 
    </context-param> 
    <servlet> 
     <servlet-name>Faces Servlet</servlet-name> 
     <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>*.jsf</url-pattern> 
    </servlet-mapping> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
    <welcome-file-list> 
     <welcome-file>pages/customer-lookup</welcome-file> 
    </welcome-file-list> 
</web-app> 
+0

如何頁面加載時在瀏覽器中查看「查看源代碼」? – 2010-06-09 07:49:11

+0

生成的html看起來與上面的代碼完全一樣。 – AnAmuser 2010-06-09 08:01:02

+0

向我們顯示您的web.xml – Bozho 2010-06-09 09:37:39

回答

14

您需要確保該請求的URL,你在瀏覽器地址欄中輸入( )匹配FacesServleturl-pattern。即請勿用http://example.com/context/page.xhtml打開頁面,但可以用http://example.com/context/page.jsf打開。否則,將不會調用FacesServlet,並且不會以任何方式解析含有JSF組件的XHTML頁面。你只看到類似<fieldset>「純HTML」標籤等的瀏覽器,你將看到JSF的源代碼在返回的HTML源代碼保持不變,當你在瀏覽器中做一個查看源代碼

+0

好吧。現在我已經將歡迎文件更改爲jsf文件,並且它可以工作。正如你大概可以猜到,我是這個網絡事物的總新手。我正在嘗試做一些教程,但即使這些簡單的事情不會起作用,它也很令人沮喪:) – AnAmuser 2010-06-09 11:36:58

+2

這是一個正確閱讀正確教程的問題。我建議你在這裏開始:http://www.coreservlets.com/JSF-Tutorial/jsf2/ – BalusC 2010-06-09 11:42:41

+1

AnAmuser,如果你覺得這個答案是正確的,因爲它解決了你的問題,點擊答案旁邊的複選框「接受 – 2010-06-10 02:43:16

0

檢查,如果你在這個網頁上配置的面孔,Servlet的

+0

在使用Java EE 6服務器(如Sun GlassFishTM Enterprise Server v3)時,自動爲您完成映射Faces Servlet。 – AnAmuser 2010-06-09 09:08:12

+1

好的。但它是什麼頁面的修復後? .xhtml?你是否將它作爲somthing.jsf URL並設置在WEB.xml中以將* servlet放在* .jsf上? – Dejell 2010-06-09 09:23:22

+0

這是一個xhtml文件。和web.xml文件現在在問題 – AnAmuser 2010-06-09 10:37:22

7

添加到您的web.xml:

<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.xhtml</url-pattern> 
    </servlet-mapping> 
2

你面對的可能的web.xml文件存儲在WEB-INF目錄在你的Web應用程序項目要解決的問題。您需要打開該文件並添加以下xml內容才能使頁面正常運行。

<web-app> 
    ... 
    ... 
    ... 
    <servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>*.xhtml</url-pattern> 
    </servlet-mapping> 
    </web-app> 

如果犯規存在於提到的目錄你的.xml文件,你可以通過點擊你的Web應用程序項目中添加,添加新的文件,然後選擇標準部署描述符(web.xml)