【发布时间】:2014-05-27 22:28:25
【问题描述】:
我刚开始学习Spring MVC和tomcat。
我想通过 Spring 和 ThymeLeaf VewTemplate Engine 显示 html 页面。
但它不起作用。
在我的配置文件和控制器下面。
web.xml 文件
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
/webapp/WEB-INF/DispatcherServlet-serlvet.xml
<context:component-scan base-package="com.everblog.controller" />
<!-- ViewResolver be configured by thymeleaf -->
<bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
<property name="prefix" value="/WEB-INF/view/" />
<property name="suffix" value=".html" />
<property name="templateMode" value="HTML5" />
<property name="characterEncoding" value="UTF-8" />
</bean>
<bean id="templateEngine" class="org.thymeleaf.spring3.SpringTemplateEngine">
<property name="templateResolver" ref="templateResolver" />
</bean>
<bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver">
<property name="templateEngine" ref="templateEngine" />
<property name="order" value="1" />
<property name="viewNames" value="*.html" />
</bean>
和控制器
@Controller
public class PostItemController {
@RequestMapping(value="/hello", method = RequestMethod.GET)
public String helloWorld() {
System.out.println("IS IN");
return "index";
}
}
我在浏览器上输入 localhost:9000/hello,然后浏览器显示此错误消息。 HTTP 状态 500 - 无法解析名称为“DispatcherServlet”的 servlet 中名称为“index”的视图
输入异常报告
消息无法解析名称为 servlet 中名称为“索引”的视图 'DispatcherServlet'
描述服务器遇到了一个内部错误,导致它无法完成这个请求。
例外
javax.servlet.ServletException:无法解析带有名称的视图 名称为“DispatcherServlet”的 servlet 中的“索引” org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1190) org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:844) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 注意 Apache 中提供了根本原因的完整堆栈跟踪 Tomcat/7.0.50 日志。
index.html 位于 /webapp/WEB-INF/view/
我该做什么配置了?
【问题讨论】:
-
也许在 helloWorld() 上你需要返回“index.html”(取自stackoverflow.com/questions/13105048/…)
-
localhost:9000/hellourl 中是否缺少上下文名称(项目名称)?
标签: java spring tomcat spring-mvc servlets