我有一個項目應付(實際上過度)爲學校,並不能得到一些簡單的工作。來自Servlet的有效URL 404錯誤
我正在運行Netbeans 7.2.1,Glassfish 3.1.2.2和最新的Java JDK。
我有四個JSF頁面,index.xhtml ItemAdd.xhtml,ItemCatalog.xhtml和ItemDetail.xhtml以及一個servlet SessionServlet。我已經證實我可以直接到達每個頁面,即
http://localhost:8080/CMIS440Spitzer-Project2/faces/ItemDetail.xhtml
的作品。但是,當我從一個JSF頁面到我的servlet,然後轉發請求時,我得到一個glassfish 404錯誤。
這是我這是在做轉發極其簡單的servlet代碼:
if (request.getParameter("target").contains("Add Item")) {
String URL = request.getContextPath() + "/faces/ItemAdd.xhtml";
System.out.print(URL);
RequestDispatcher dispatcher = request.getRequestDispatcher(URL);
dispatcher.forward(request, response);
}
一個控制檯,我得到它,我可以粘貼到瀏覽器中的追隨者,它的工作原理:
INFO: /CMIS440Spitzer-Project2/faces/ItemAdd.xhtml
由於我收到控制檯消息我知道請求正在到達servlet,並且它正在打到正確的代碼塊,並且因爲我得到了一個Glassfish 404錯誤,我知道它正在轉發到正確的端口上的我的計算機。
RequestDispatcher有什麼問題?爲什麼這不起作用?
謝謝。
<rant>
這包括了更多的問題,但我已經與PHP,Perl,C++,C,Java和其他一些工作。以前我從來沒有覺得一種語言(在這種情況下,JSF的Java實現)正在積極地試圖讓我的生活變得越來越困難。例如,在這個環境中許多需要的東西都是以地圖的形式出現的: 需要所有請求參數的列表,您需要一張地圖,需要所有會話參數的列表,您需要一張地圖等。但是在JSF中,您無法輕鬆通過地圖!爲什麼,因爲它很慢。我發現了一個基本上來自Java開發人員的Mea Culpa的鏈接,他提到它將是O(N)速度,因此速度會很慢。換句話說,Java JSF開發人員預先優化了我的代碼,並要求我將地圖轉換爲列表。
在這一點上,當我現在正在反思和訪問私有方法/屬性時,我得到了一些奇怪的錯誤 - 在我的代碼中,我正在做類似的任何事情。我使用標準的getter/setter來返回一個map keyset。
甚至不讓我開始getter/setter方法的命名約定(大寫轉換爲小寫,添加一個get /前方設置)
也許它的我,但是這整個設置似乎過於遲鈍,很難理解和不必要的複雜。
感謝您閱讀我的咆哮。我一直在這種方式,然後我認爲我應該和幾乎流淚試圖做簡單的東西。
</rant>
因爲我不知道任何更好的,這是教練基本示例如何工作:-) – user1863569
@ user1863569我很抱歉,但您以錯誤的方式使用此技術,導致許多不必要的挫折。你最好在Google上搜索一個教程並首先運行一個hello世界的例子,這樣你就可以得到你的方向 –
我的問題是很多的例子都是圍繞着使用腳本let's或者jsf 1.x而浮動。也許我錯過了mvc 2範例,但我認爲這就是控制器所做的事情:獲取表單的結果,對模型數據進行一些處理,然後將其轉發到新視圖 – user1863569