问题:No Spring WebApplicationInitializer types detected on classpath
来源:7-2 项目作业
Jerry_Zheng24
2022-11-23 13:43:54
1、使用技术点:SpringMVC ,FreeMarker
2、创建实体类,测试类
Tips:在.ftl文件中,使用list进行遍历输出,参考
3、在页面展示效果图对应数据
1.在工程的配置文件pom.xml中引入依赖 freemarker:
手动加载刷新下
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.imooc</groupId>
<artifactId>smh01</artifactId>
<version>1.0-SNAPSHOT</version>
<repositories>
<repository>
<id>aliyun</id>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.28</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
</dependencies>
</project>
2./3.
在Spring 的配置文件applicationContext.xml中:
通知Spring MVC,启用的视图解析器的模板引擎是FreeMarker;
配置FreeMarker本身的参数
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mv="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.imooc.springmvc"/>
<!--启用Spring MVC的注解开发模式-->
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=utf-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<mvc:default-servlet-handler/>
<bean id="ViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="contentType" value="rext/html;charset=utf-8"/>
<property name="suffix" value=".ftl"/>
</bean>
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/ftl"/>
<property name="freemarkerSettings">
<props>
<prop key="defaultEncoding">UTF-8</prop>
</props>
</property>
</bean>
</beans>
新建实体类:
package com.imooc.springmvc.entity;
public class Goods {
private String number;
private String name;
private Integer price;
private String date;
public Goods() {
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
}
在controller控制层的GoodsFreemarkerController类中:
package com.imooc.springmvc.controller;
import com.imooc.springmvc.entity.Goods;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
import java.util.ArrayList;
import java.util.List;
public class GoodsFreemarkerController {
("/test")
public ModelAndView showTest(){
ModelAndView mav = new ModelAndView("/goods");
List<Goods> list = new ArrayList();
Goods goods1 = new Goods();
goods1.setNumber("1001");
goods1.setName("O字黄金链");
goods1.setPrice(123000);
goods1.setDate("2021-01-01");
Goods goods2 = new Goods();
goods2.setNumber("1001");
goods2.setName("镶宝链");
goods2.setPrice(223105);
goods2.setDate("2021-02-11");
list.add(goods1);
list.add(goods2);
mav.addObject("list", list);
return mav;
}
}
在目录WEB-INF|ftl中,新建模板文件test.ftl:
在.ftl文件中,使用list进行遍历输出
<table class="table table-hover table-bordered" border="1">
<thead>
<tr style="color: darkslateblue;font-size: 20px">
<th>编号</th>
<th>商品名称</th>
<th>商品价格</th>
<th>上新时间</th>
</tr>
</thead>
<tbody>
<#list list as item>
<tr style="font-size: 15px">
<td>${item.number}</td>
<td>${item.name}</td>
<td>${item.price}</td>
<td>${item.date}</td>
</tr>
</#list>
</tbody>
</table>
Tomcat启动:
浏览器:

莫名其妙弹出:

请问:老师问题出在哪里?
日志文件:
23-Nov-2022 13:37:19.452 淇℃伅 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath 23-Nov-2022 13:37:19.736 淇℃伅 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.ApplicationContext.log Initializing Spring DispatcherServlet 'springmvc'
文件目录:

1回答
好帮手慕小蓝
2022-11-23
同学你好,在同学提供的代码中,applicationContext.xml的ViewResolver的value中存在拼写错误,开头应当是“text”而不是“rext”。
祝学习愉快~
相似问题