SpringMVC的快速入门
开发步骤
1.首先需要在pom.xml里面导包
导包 Spring核心容器包(4个),日志包(两个 commons-logging / log4j ),aop(面向切面包) ,web(web包) webmvc ,jstl (自定义标签库) ,servlet ,jsp
建包图解
导包代码
必须要导入这些包,才能方便使用
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<!--引入web坐标依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<!--引入webmvc坐标依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<!--引入jstl坐标依赖-->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--引入servlet坐标依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!--引入jsp坐标依赖-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.2.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
2.web页面(前端的事我是学java的不写前端谢谢)
3.创建数据库(好吧这里也不写了,主要是讲SpringMVC的运用)
4.创建一个包叫做controller 这就是我们的web包
5.在controller包下面建一个类RoleController web层role控制器 并且在类上面添加注解 @Controller 标识交给Spring容器管理
6.书写展示所有角色信息的方法,,并在该方法上面添加注解@RequestMapping注解这是请求映射注解,把请求路由写在里面
RoleController类代码
/**
* web层的role控制器
*
* @Repository @Component @Service @Controller
* 目的都是交给Spring容器管理
*
*/
@Controller //交给Spring容器管理
//假定请求路由事 localhost:8080/day70_hello/role/listRoles
public class RoleController{
ArrayList<Role> listRole = null;
//定义方法
@RequestMapping("/role/listRoles") //这是请求映射注解,把请求路由写在里面,,我们页面的地址就是按照这个路由写的
public ModelAndView getAllRoles(){
/**ModelAndView 这是一个特别牛逼的类
* Model是一个模型用于封装数据 主要事用于封装数据并且传到页面上去
* View 视图 就是你需要跳转到哪一个页面资源·1
*
*/
//他是模型视图类,借助它完成数据的封装到页面的跳转
ModelAndView mav = new ModelAndView();
//假定已经拿到数据库中的数据
listRole = new ArrayList<>();
listRole.add(new Role(1,"学生","学习",new Date()));
listRole.add(new Role(2,"老师","学习",new Date()));
listRole.add(new Role(3,"副教授","学习",new Date()));
listRole.add(new Role(4,"教授","学习",new Date()));
listRole.add(new Role(5,"院士","学习",new Date()));
listRole.add(new Role(6,"国士","学习",new Date()));
//需要把listRole数据传输到页面中并展示出来
//借助于SpringMVC来替代Servlet来完后曾Servlet的工作、
//把数据放入ModelAndView对象之中,
mav.addObject("list",listRole);//把值存到ModelAndView里面并指定key值 key值事更具前端里面来定的
//实现页面跳转---指定跳转地址/WEB-INF/view/role/roleList.jsp
mav.setViewName("/role/roleList");//因为我们写了视图解析器的前后缀,所以这里要删除前后缀重复的省略了/WEB-INF/view和.jsp
//返回ModelAndView
return mav;
}
7.新建springmvc.xml文件扫描 controller包
8.前端控制器配置在web.xml里面加载DispatcherServlet类 前端控制器,这样就能把spring的主配置为文件扫描到这个web.xml里面
springmvc.xml代码演示
<!--扫描controller包让他加载到spring容器中-->
<context:component-scan base-package="com.zhiyou100.web.controller"/>
<!--
<!–配置处理器映射器–>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
<!–配置处理器适配器–>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>
-->
<!--注解驱动:配置处理器映射器和配置处理器适配器--><!--由这一个代码替代上面两个代码-->
<mvc:annotation-driven/>
<!--配置视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view"/><!--前缀:免得每次写页面都要写一大堆-->
<property name="suffix" value=".jsp"/><!--后缀: 提取后面相同的部分,后面的就可以不用写了-->
</bean>
<!--静态资源放行-->
<!--方式一:采用tomcat内置的默认处理方式 -->
<mvc:default-servlet-handler/><!--开启tomcat的缺省配置处理方式-->
<!--方式二:手动映射-->
<!--/img/** 表示img文件夹下的资源和它下面子文件的资源-->
<mvc:resources mapping="/img/**" location="/img/"/>
<mvc:resources mapping="/css/**" location="/css/"/>
<mvc:resources mapping="/js/**" location="/js/"/>
<mvc:resources mapping="/lib/**" location="/lib/"/>