2016-07-13 18 views
0

我對JavaServer Faces是如此新穎。我試圖在Netbeans中創建一個項目。 (新建項目> Java Web> Web應用程序)。創建時我更改了JSF Servlet URL模式。IDE創建xhtml而不是.jsf作爲擴展

它是這樣的:

demo

而且我改變爲 「* .jsf」,然後創建。 Netbeans編輯了web.xml文件。

<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>index.jsf</welcome-file> 
</welcome-file-list> 
</web-app> 

但是我的索引頁仍然是xHTML。

index page

最後,當我運行到文件,IDE試圖打開index.html和瀏覽器找不到index.html的,所以我去index.jsf和頁面打開。

我一直在尋找一段時間,我只是發現有人建議編輯到web.xml,但它已經編輯。那麼你有什麼建議嗎?

+0

在web.xml已映射與URL servlet的* .jsf,這意味着您的頁面將使用該擴展名進行映射。如果您只想訪問擴展名爲xhtml的頁面,請嘗試在 * .xhtml中更改 * .jsf。 – SiMag

+0

其實我想訪問擴展名爲jsf的頁面。但有些index.html不轉向index.jsf。和它的一個問題。爲什麼仍然是index.html?它應該是index.html嗎? –

+0

如果你想index.html轉到index.jsf你必須添加另一個url模式,請參閱他發佈的鏈接Subodh Joshi [答](http://stackoverflow.com/a/38355009/6546865)。 – SiMag

回答

2

然後你就可以使用下面的servlet映射

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

你可以使用一個以上的模式以及請檢查下面

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

欲瞭解更多信息和詳細信息,您可以檢查BalusC的常綠答案爲以下問題。

對於你的問題,爲什麼它的創建index.html而不是index.xhtml您可以查看以下鏈接

它會告訴你一步一步的過程創建一個JSF項目,最後它創建index.xhtml頁面,而不是index.html。所以從這個鏈接你可以得到你錯過了哪一步。

請檢查下面的兩個屏幕

1步

enter image description here

2。步驟2

enter image description here

您可以檢查高亮(黃色)的文本及其擴展.XHTML而不是.HTML

+0

嗯,我很抱歉評論那裏我犯了一個錯誤我試圖寫xhtml,但我做了HTML。它應該是 \t ----實際上我想訪問擴展名爲jsf的頁面。但有些index.xhtml不會轉向index.jsf。和它的一個問題。爲什麼仍然是index.xhtml?它應該是index.xhtml? ---- 我的索引頁和你一樣。它像你張貼的圖片。但我想它作爲index.jsf。我正在尋找你發佈的網站,但我仍然無法得到我的答案,也許我錯過了什麼idk:/讓我再看看它 –

+0

在你的servlet映射使用' * .jsf'那麼你可以訪問你的頁面如果您的實際頁面名稱爲'abc.xhtml'.URL模式用於調用JSF servlet並處理JSF生命週期,則'abc.jsf'沒有問題。 –

+0

是的,我可以訪問。我想爲什麼它仍然在NetBeans中的abc.xhtml,並認爲它也必須在netbeans方面是abc.jsf。所以我想我沒有問題,我只是不知道它沒有問題是abc.xhtml我認爲它是一個問題。謝謝你給我時間和遺憾浪費你的時間:( –