//这是controller
@Controller
@RequestMapping()
public class PageController {
@RequestMapping(value = "/page/index",method={RequestMethod.GET})
public ModelAndView index(){
ModelAndView mav=new ModelAndView();
mav.addObject("name","youmu daisuki");
mav.setViewName("index");
return mav;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!--springmvc的配置如下所示:-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="com.youmu.maven.web.controller" >
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan>
<mvc:annotation-driven />
<mvc:resources mapping="/WEB-INF/**" location="/WEB-INF/"/>
<!--<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">-->
<!--<property name="suffix" value=".html"/>-->
<!--<property name="prefix" value="/WEB-INF/html/"/>-->
<!--<property name="order" value="0"/>-->
<!--</bean>-->
<!-- freemarker -->
<bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="freemarkerSettings">
<props>
<prop key="template_update_delay">10</prop>
<prop key="locale">zh_CN</prop>
</props>
</property>
</bean>
<bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/>
<property name="cache" value="true"/>
<property name="suffix" value=".ftl"/>
<property name="prefix" value="/WEB-INF/ftl/"/>
</bean>
</beans>
我试过后一直报
javax.servlet.ServletException: Could not resolve view with name 'index' in servlet with name 'spring-mvc' org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1237) org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) javax.servlet.http.HttpServlet.service(HttpServlet.java:622) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
我看了有这个文件啊,我跟源码后发现路径变成了WEB-INF/ftl/index.ftl,怎么说应该是/WEB-INF/ftl/index.ftl的啊。后来我把
FreeMarkerConfigurer 的< property name ="templateLoaderPath" value ="" ></ property > 加上去就好了...我又试了试去掉prefix也不行,估计是这两个都有null判断(不是blank判断)。希望码友们少踩这个坑。。。