HelloWorld之构建第一个Spring MVC项目

今天看了慕课上面的Spring MVC起步视频,总结出来搭建第一个Spring MVC项目的步骤以供参考。


1.      配置本地Maven。

从官网下载apache-maven-3.5.2-bin.zip,解压至任意目录如E:\maven\。

将conf目录中的setting.xml拷贝至任意目录如E:\maven\.m2\。

修改拷贝好的setting.xml,添加本地仓库路径和Maven镜像站点配置:

E:\Program Files\maven\.m2\repository

  mirror-uk
  UK Central
  http://uk.maven.org/maven2/
  central


2.      配置Intellij IDEA的Maven环境。

打开Settings->Build, Execution, Deployment->Build Tools->Maven,设置Maven homedirectory为E:\Program Files\maven\,User settings file后勾选Override后设置为E:\Program Files\maven\.m2\setting.xml。

这样在以后使用IDEA下载Maven依赖时都会下载到配置文件setting.xml中localRepository标签指定的位置。

HelloWorld之构建第一个Spring MVC项目_第1张图片


3.      创建第一个Spring MVC项目。

打开IDEA创建新项目,选择Maven并且勾选Create from archetype,选择下方列出的org.apache.maven.archetypes:maven-archetype-webapp,点击下一步,指定GroupId/ArtifactId点下一步,检查Maven配置点下一步,确认Project配置完成创建。


4.      配置pom.xml加入相关依赖。


4.0.0
MavenTest
MavenExample
war  
1.0-SNAPSHOT
MavenExample Maven Webapp
http://maven.apache.org


  2.6
  1.7.6
  4.1.3.RELEASE


   
  
    
      org.springframework
      spring-framework-bom
      ${spring.version}
      pom
      import
    
  



  
    junit
    junit
    3.8.1
    test
  
  
    javax.servlet
    jstl
    1.2
    runtime
  
  
    javax.servlet
    servlet-api
    2.5

  
    org.slf4j
    slf4j-api
    ${slf4j.version}
  
  
  
    org.springframework
    spring-webmvc
    ${spring.version}
  
  
    commons-lang
      commons-lang
      ${commons-lang.version}
  
  
    org.slf4j
    slf4j-log4j12
    ${slf4j.version}
    
      
        slf4j-api
        org.slf4j
      
    
  


  MavenExample


5.      添加相关配置文件。

WEB-INF/web.xml:指定配置文件路径、ContextLoadListener、Servlet、Servlet-mapping。




    Archetype Created Web Application

    
    
        contextConfigLocation
        WEB-INF/conf/spring/applicationContext*.xml
    
    
        org.springframework.web.context.ContextLoaderListener
    

    
    
        mvc-dispatcher
        org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            WEB-INF/conf/spring/mvc-dispatcher-servlet.xml
        
        1
    
    
    
        mvc-dispatcher
        /
    

按照web.xml中mvc-dispatcher项指定的配置文件路径,配置mvc-dispatcher-servlet.xml。

WEB-INF/conf/spring/mvc-dispatcher-servlet.xml:配置mvc-dispatcher。配置ViewResolver中指定了前缀/WEB-INF/jsps/和后缀.jsp,表明servlet将从/WEB-INF/jsps/路径下寻找后缀名为.jsp的匹配页面文件。




    

    
    
    

    
    
        
    

    
    

    
    

    
    

    
    
    
        
        
        
    

WEB-INF/conf/spring/applicationContext.xml:Spring配置。




    

    


6.      添加前端JSP页面。

在WEB-INF\jsps\路径下新建home.jsp页面。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Spring MVC Test


Hello Spring MVC!


7.      添加后端Controller。

在src/main/java下com.adam.spring.controller包下新建HelloMvcController。

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/hello")    //HelloMvcController响应/hello请求
public class HelloMvcController {
    @RequestMapping("/mvc")    //helloMvc()方法响应/hello/mvc请求
    public String helloMvc() {
        return "home";    //跳转到WEB-INF/jsps/home.jsp
    }
}


8.      配置Tomcat服务器。

配置Tomcat,部署Web应用。


9.      启动服务器。

启动Tomcat服务器,地址栏输入localhost:8080/hello/mvc回车,页面会显示出home.jsp的内容。

HelloWorld之构建第一个Spring MVC项目_第2张图片


问题记录:

1.   java.lang.NoClassDefFoundError:javax/servlet/jsp/jstl/core/Config

类似错误:java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

解决:导入JSTL包。

WEB-INF下新建lib文件夹,放入jstl-1.2.jar,然后在ProjectStructure-Library中设置lib。


2.   Cannot resolve reference to bean'cacheManager' while setting bean property 'cacheManager'; nested exception isorg.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named'cacheManager' is defined

解决:dispatcher-servlet.xml文件中将

xmlns:mvc="http://www.springframework.org/schema/cache"

改为

xmlns:mvc="http://www.springframework.org/schema/mvc"

同时将xsi:schemaLocation标签中进行相应调整。


3.   java 非法字符’\ufeff’

编码格式问题。

解决:将文件所有内容复制到Notepad中,然后删除重新创建内容一样的文件。


你可能感兴趣的:(技术博客)