我是春季新手,有一个关于视图分辨率的问题。我正在更改我在线下载的web应用程序,它使用简单的视图解析器策略:
<bean id="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/view/" />
<property name="suffix" value=".jsp" />
</bean>
和我一直得到404错误的视图分辨率,我怀疑它使用某种重写/过滤机制。是否有一个日志,我可以在tomcat/Spring类中查看,我可以覆盖,以便了解Spring在解析传入请求时试图寻找什么文件?
我理解InternalResourceViewResolver
剥离文件扩展名的操作。但是如果请求没有延期怎么办?例如:
@RequestMapping("/foo")
protected ModelMap render() { return new ModelMap(); }
那么在这种情况下将被解析为的视图名称是什么?
查看log4j集成的链接
Spring-mvc不使用任何文件来处理请求,它使用控制器和requestmapping将请求映射到控制器和相应的方法(如果有的话)。
您编写的InternalResourceViewResolver将从控制器类返回的"视图名称"解析到驻留在/WEB-INF/view/目录中的JSP页面。
一个例子@Controller
public class SimpleController{
@RequestMapping("/home")
public String homeMapper(Model model) {
return "home";
}
}
如果您尝试访问"home",将调用homapper方法,并且当它返回home时,要呈现的相对jsp是"home.jsp"应该出现在/WEB-INF/view/
中有关更多信息,请参阅spring mvc参考或任何教程。