初学springmvc遇到“源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。“错误

我通过复制已有项目的web.xml、applicationContext.xml,创建了一个新的springmvc项目,但是配置controller的映射路径都不能正常访问。

我重新创建项目,手敲web.xml、applicationContext.xml,问题还在。

对比发现pom.xml有差异:

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <parent>
        <artifactId>springmvcdemo</artifactId>
        <groupId>org.jlcc</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.kuang</groupId>
    <artifactId>springmvc-03-annotation</artifactId>
    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.22</version>
            <scope>provided</scope>
        </dependency>

    </dependencies>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <build>
        <!--这个元素描述了项目相关的所有资源路径列表,例如和项目相关的属性文件,这些资源被包含在最终的打包文件里。 -->
        <resources>
            <!--这个元素描述了项目相关或测试相关的所有资源路径 -->
            <resource>
                <!--描述存放资源的目录,该路径相对POM路径 -->
                <directory>src/main/java</directory>
                <!--包含的模式列表,例如**/*.xml. -->
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <!--描述存放资源的目录,该路径相对POM路径 -->
                <directory>src/main/resources</directory>
                <!--包含的模式列表,例如**/*.xml. -->
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>


    </build>

</project>

新创建项目的pom.xml(IDEA自动生成)缺build字段:

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <parent>
        <artifactId>springmvcdemo</artifactId>
        <groupId>org.jlcc</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.kuang</groupId>
    <artifactId>springmvc06ajax</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

</project>

我查了下build->resources字段的作用:

2) <resources>

资源往往不是代码,无需编译,而是一些properties或XML配置文件,构建过程中会往往会将资源文件从源路径复制到指定的目标路径。

因为新项目没有配置build,所以程序构建没有xml配置文件,程序就无法允许。

Maven build之pom.xml文件中的Build配置 - 程序员大本营

上一篇:SpringMVC原理及实践


下一篇:SpringMVC中Controller层的接口的一些不同写法总结