我刚开始学习Spring MVC和tomcat。
我想通过Spring和ThymeLeaf VewTemplate引擎显示html页面。
但它不起作用。
下面是我的配置文件和控制器。
网状物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”的视图
类型异常报告
消息无法在名为“DispatcherServlet”的servlet中解析名为“index”的视图
描述服务器遇到内部错误,无法满足此请求。
例外
ervlet.serviceServletException:无法解析名称为DispatcherServlet的servlet中的名称为index的视图ervlet.java:621DispatcherSorg.springframework.web.servlet.(DispatcherServlet.service)ervlet.java:829DispatcherSjavax.servlet.http.DispatchResult(DispatcherServlet.service)ervlet.java:728DispatcherSorg.apache.tomcat.websocket.server.Dispat(DispatcherSilter.do)ilter.java:52DispatcherSorg.springframework.web.filter.Service(DispatcherSilter.do)org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953)org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:844)javax.servlet.http.HttpSjavax.servlet.(HttpSorg.springframework.web.servlet.)ervlet.renderFrameworkServlet.java:1190(FrameworkSorg.springframework.web.servlet.)ervlet.processHttpServlet.java:992(HttpSorg.springframework.web.servlet.)ervlet.doWsFervlet.java:939Filter(WsForg.springframework.web.servlet.)ervlet.do特征编码Fervlet.java:856FilterInterIncerEncodingFilter. java: 88)org. springframe. web. filter. OncePerRequest estFilter. doFilter(OncePerRequest estFilter. java: 107)注意Apache Tomcat/7.0.50日志中提供了根原因的完整堆栈跟踪。
index.html位于 /webapp/WEB-INF/view/
我还需要配置什么?
用这段代码单独替换thymeleaf解析器中的最后一个bean,它可以正常工作
<beans:bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver">
<beans:property name="templateEngine" ref="templateEngine" />
</beans:bean>
请看一下MyryleAFViewResolver的javadoc#setViewNames(字符串[])。它指出
指定一组名称模式,用于确定控制器返回的视图名称是否将由此解析器解析。
您的@Controller
处理程序方法返回的视图名称是
return "index";
该视图名称显然与模式不匹配
*.html
你必须使用
return "index.html";
让Spring使用您的ThymeleafViewResolver,尽管在后面的步骤中会失败,因为不存在这样的已解析JSP。
相反,只需去掉viewNames
包含瓷砖定义的“general.xml”: 例外情况: dispatcher-servlet.xml: web.xml
我的第一个应用程序有问题。我试着几个小时来解决这个问题。知道吗?? 类型异常报告 消息无法解析名为的servlet中名为“home”的视图 说明服务器遇到意外情况,无法完成请求。 例外情况 javax.servlet.ServletException:无法解析名为“dispatcher”的servlet中名为“home”的视图(dispatcher servlet.java:1251)org.sp
问题内容: 我已经检查了关于stackoverflow的几乎所有相关文章,但是我无法解决我的问题。 Here is the code: web.xml: spring-servlet.xml: myController: Web Pages/index.jsp: Web Pages/WEB-INF/jsp/hello.jsp: 因此,当我启动该应用程序时,index.jsp已正确加载,但是当我单击
早上,我已经检查了这个问题的大部分答案(在名为DispatcherServlet的DispatcherServlet中找不到URI为的HTTP请求的映射),以及(在名为“DispatcherServlet”的DispatcherServlet中找不到URI为[/ChickenTest/index]的HTTP请求的映射),但我仍然得到“在名为“bmoa”的DispatcherServlet中找不到U
我已经查阅了几乎所有关于stackoverflow的相关文章,但我就是不能解决我的问题。 下面是代码:web.xml: spring servlet。xml: myController: 网页/index.jsp: 网页/WEB-INF/jsp/hello.jsp: 所以当我启动应用程序时,索引。jsp加载正确,但当我点击href导航到hello时。jsp我收到一个404错误,服务器日志显示: 我
我的web.xml applicationContext as 调度器servlet作为 与包com中相同的控制器。思维边缘。特斯塔普 当我点击. 警告:在带名称的DispatcherServlet中找不到与URI[/TestApp/samp]的HTTP请求的映射 此外,当Spring开始时,我没有看到Testapp/示例加载的处理程序 我猜我的组件扫描不起作用。为什么?还有其他原因吗 编辑:调度