使用IDEA創建SpringMVC項目
創建項目
選擇Spring MVC
設置項目名稱
這樣創建後,會自動的下載SpringMVC需要使用到的jar包
結束後會提示要不要創建WEB-INF及xml文件
創建完成的樣子
接下來開始玩吧 HelloWorld
WEB-INF/springmvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
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">
<!-- 配置自動掃描的包 -->
<context:component-scan base-package="com.test.springmvc.bandlers"></context:component-scan>
<!-- 配置視圖解析器:如何把 handler 方法返回值解析爲實際的物理視圖 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
HelloWorld.java(com.test.springmvc.bandlers.HelloWorld)
package com.test.springmvc.bandlers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloWorld {
/**
* @ClassName HelloWorld
* @Description //TODO
* @Author Zhong Yanghao
* @Date 20:04 2019/4/18
* @Param []
* @return java.lang.String
* @Version 1.0
* 1.使用 @RequestMapping 註解來映射請求的URL
* 2.返回值會通過視圖解析器解析爲實際的物理視圖,
* 對於 InternalResourceViewResolver 視圖解析器,會做出如下的解析:
* 通過 prefix + returnVal + 後綴 這樣的方式得到實際的物理視圖,然後做轉發操作
*
* /WEB-INF/views/success.jsp
*/
@RequestMapping("/helloworld")
public String hello(){
System.out.println("hello world");
return "success";
}
}
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<a href="helloworld">Hello World</a>
</body>
</html>
WEB-INF/views/success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h4>Sucess Page</h4>
</body>
</html>
WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 配置 DispatcherServlet -->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置配置 DispatcherServlet 的一個初始化參數:配置 SpringMVC 配置文件的位置和名稱 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.form</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
實際上也可以不通過 contextConfigLocation 來配置 SpringMVC 的配置文件,而使用默認的。
默認的配置文件爲:/WEB-INF/< servlet-name>-servlet.xml
把配置信息註釋或者刪除,然後把springmvc.xml重新按照默認命名規則命名即可
<!-- 配置 DispatcherServlet 的一個初始化參數:配置 SpringMVC 配置文件的位置和名稱 -->
<!-- <init-param>-->
<!-- <param-name>contextConfigLocation</param-name>-->
<!-- <param-value>springmvc.xml</param-value>-->
<!-- </init-param>-->
tomcat啓動
效果
出現的問題
缺少jar 包
錯誤信息
Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
解決辦法
/WEB-INF/下創建lib文件夾,添加一下包
重新運行就好了
找不到dispatcherServlet-servlet.xml
IOException parsing XML document from ServletContext resource [/WEB-INF/dispatcherServlet-servlet.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/dispatcherServlet-servlet.xml]
解決辦法
我把xml放在了src下,移動到web/WEB-INF/下就好了