我寫這具有映射到一個URL一個控制器方法的簡單的Spring MVC應用程序:當通過瀏覽器請求的URLSpring MVC的:沒有處理程序找到正確解析JSP
@RequestMapping(method = RequestMethod.GET, value = "/person_list")
public ModelAndView getPersonList()
{
// get the list of all persons from the database and set this as the only member of our model map
List<Person> personList = personDao.list();
Map<String, Object> model = new HashMap<String, Object>();
model.put("person_list", personList);
// pass it on as a model and view, view should resolve to "list_persons.jsp"
return new ModelAndView("list_persons", "model", model);
}
我得到一個404頁面,並在Tomcat的日誌我看到一條消息,告訴我,正確解析JSP視圖文件,/WEB-INF/jsp/list_persons.jsp,未發現:
org.springframework.web.servlet.PageNotFound.noHandlerFound No mapping found for HTTP request with URI [/my_app/WEB-INF/jsp/list_persons.jsp] in DispatcherServlet with name 'dispatcher'
在我的Spring應用程序上下文配置我已經使用了一個相當標準的視圖解析器設置:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
如果我去到哪裏部署應用程序,我可以看到JSP文件就是它應該是$ TOMCAT_HOME/webapps /下程序my_app/WEB-INF/JSP/list_persons.jsp
Tomcat的webapps目錄可能是文件被發現,但有是應該發生的,我已經跳過另一個處理程序映射步驟?我的假設是,一旦這個JSP頁面被引用爲響應中的視圖,那麼JSP應該在瀏覽器中呈現爲HTML。我可以從其他視圖獲得預期的結果,這些視圖是擴展AbstractView的類,但普通的JSP並不令人高興。
任何人都可以說明爲什麼這工作不正常?預先感謝任何幫助/見解。
UPDATE:
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
這樣::
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
我希望這這是通過在web.xml改變servlet映射從/ *到/,也就是從這個解決有助於防止別人浪費在這個像我這樣的小時...
我們展示你的web.xml。 –
調度程序配置可能對此有所幫助 – 2014-03-25 07:18:00
請將您的調度程序servlet發佈給我們 –