springMVC第一個demo(基於註解方式)
阿新 • • 發佈:2018-12-30
因為粗心沒仔細看報錯資訊所以搭建了好久,剛好有時間就記錄下來,希望其他訪問不到Controller類的初學者不要跟我一樣粗心浪費時間
jre版本:1.8
tomca版本:v9.0
spring版本:5.0.1
導包:本人匯入了spring的所有包,沒出現問題,不知道有沒有壞處,高手路過可以指點一下嗎
先貼上我的專案結構
這裡把jsp檔案放在WEB-INF/jsp目錄下了
下面是搭建步驟(僅供參考)
1.配置web工程的web.xml檔案,放在WEB-INF下
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>spring-MVC</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <!-- 前端控制器 --> <servlet> <servlet-name>spring-MVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 預設找 /WEB-INF/[servlet的名稱]-servlet.xml --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-config.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>spring-MVC</servlet-name> <!-- 1. /* 攔截所有 jsp js png .css 真的全攔截 建議不使用 2. *.action *.do 攔截以do action 結尾的請求 肯定能使用 ERP 3. / 攔截所有 (不包括jsp) (包含.js .png.css) 強烈建議使用 前臺 面向消費者 www.jd.com/search /對靜態資源放行 --> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
2.編寫springmvc配置檔案,我的檔名為springmvc-config.xml。
注意:spring4.0版本以上的處理器對映器,處理器介面卡,檢視解析器可寫可不寫
<?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"> <!-- 配置handle 對映”/hello“請求 --> <!-- <bean name="/hello" class="org.fkitcontroller.HelloController"></bean> --> <context:component-scan base-package="com" /> <!-- 處理器對映器 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean> 處理器介面卡 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean> 檢視解析器 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean> --> <!--如果寫了下面這個bean,那麼在控制器類返回檢視名的時候應該省略"/WEB-INF/"以及".jsp"字尾 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
3.編寫控制器類
package com; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; @Controller public class HelloController { @RequestMapping("/hello") public ModelAndView hello() { System.out.println("hello"); ModelAndView mv = new ModelAndView(); mv.addObject("message","hello spring MVC"); //如果沒配置檢視解析器則用這個路徑WEB-INF/jsp/index.jsp //mv.setViewName("WEB-INF/jsp/index.jsp"); mv.setViewName("index"); return mv; } }
4.編寫View頁面
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>welcome</title>
</head>
<body>
返回值:${message}
</body>
</html>
5.測試應用
在eclipse部署web應用後,在瀏覽器訪問127.0.0.1:8080/spring-MVC/hello