因为粗心没仔细看报错信息所以搭建了好久,刚好有时间就记录下来,希望其他访问不到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