//這是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判斷)。希望碼友們少踩這個坑。。。