0

我是春季新手,对视图分辨率有疑问。我正在更改我在线下载的 webapp,它使用简单的视图解析器策略:

    <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(); }

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

4

1 回答 1

0

有关log4j 集成,请参阅此链接

Spring-mvc 不使用任何文件来处理请求,它使用控制器和请求映射将请求映射到控制器和相应的方法(如果有)。

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

一个例子

@Controller
public class SimpleController{

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

如果您尝试访问“home”,则会调用 homeMapper 方法,并且当它返回 home 时,要呈现的相对 jsp 是“home.jsp”应该存在于 /WEB-INF/view/

有关更多信息,请参阅 spring mvc 参考或任何教程。

于 2013-05-04T12:52:38.487 回答