2013-05-04 96 views
0

我是一个春天的新手,并有一个关于视图分辨率的问题。我改变,我在网上下载了一个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(); } 

那么在这种情况下将解决的视图名称是什么?

回答

0

见本link为log4j的集成

弹簧MVC不使用用于请求处理的任何文件时,它使用控制器和requestmapping映射请求到控制器和相应的方法(如有)。

您编写的InternalResourceViewResolver解析从控制器类返回驻留在/ WEB-INF/view /目录中的JSP页面的“视图名称”。

为例

@Controller 
public class SimpleController{ 

@RequestMapping("/home") 
public String homeMapper(Model model) {   
    return "home"; 
} 
} 

这里,如果您尝试访问“家” homeMapper方法将被调用和返回家里要呈现的相对JSP是“针对home.jsp”应该是存在于/ WEB -INF /查看/

欲了解更多信息,请参阅春季MVC参考或任何教程。