我写这具有映射到一个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发布给我们 –