专栏首页王二麻子IT技术交流园地《SpringMVC从入门到放肆》八、SpringMVC注解式开发(基本配置)

《SpringMVC从入门到放肆》八、SpringMVC注解式开发(基本配置)

一、注册组件扫描器

这里说的组件即处理器,需要指定处理器所在的基本包。

<?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"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    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
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
    <!-- 注册组件扫描器 -->
    <context:component-scan base-package="cn.wechatbao.controller"></context:component-scan>
    
</beans>

二、第一个注解式Demo

1:Controller

package cn.wechatbao.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class MyController {

    @RequestMapping("/my.do")
    public ModelAndView first(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        ModelAndView mv = new ModelAndView();
        mv.addObject("message", "第一个注解式开发程序");
        mv.setViewName("/WEB-INF/jsp/welcome.jsp");
        return new ModelAndView("");
    }

}

2:JSP页面(welcome.jsp)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>SpringMVC1</title>
  </head>
  
  <body>
    ${message }
  </body>
</html>

3:完整的项目结构

三、命名空间的配置

一般情况下,我们开发时,一个Controller类就是一个模块,而里面的所有处理器方法就是该模块的不同业务功能。这个时候,我们Controller与Controller之间就要用路径来区分开来。以表示不同的业务模块。这个时候,只需要在类上再加上@RequestMapping("/test")注解就OK了。

完整的类如下:

package cn.wechatbao.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/test")
public class MyController {

    @RequestMapping("/first.do")
    public ModelAndView first(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        ModelAndView mv = new ModelAndView();
        mv.addObject("message", "第一个注解式开发程序方法一");
        mv.setViewName("/WEB-INF/jsp/welcome.jsp");
        return mv;
    }
    
    @RequestMapping("/second.do")
    public ModelAndView second(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        ModelAndView mv = new ModelAndView();
        mv.addObject("message", "第一个注解式开发程序方法二");
        mv.setViewName("/WEB-INF/jsp/welcome.jsp");
        return mv;
    }

}

四、请求中通配符的使用

假设上面URL中usermanager是模块名(也就是我们说的命名空间),user-add.do和user-edit.do是具体的请求。但是添加和修改我们完全可以用一个处理器方法来解决。这个时候用通配符就简单多了。其实配置起来也特别简单,只需要在处理器方法上面的注解里加*就可以了。如下

@RequestMapping("/user-*.do")
public ModelAndView userAddOrUpdate(HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    ModelAndView mv = new ModelAndView();
    mv.addObject("message", "用户的添加或修改功能");
    mv.setViewName("/WEB-INF/jsp/welcome.jsp");
    return mv;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 《SpringMVC从入门到放肆》三、DispatcherServlet的url-pattern配置详解

    上一篇我们详细解释了一下SrpingMVC的执行流程以及一些默认的配置,在Spring的思想中,就是默认大于配置。今天我们来详细的研究一下DispatcherS...

    I Tech You_我教你
  • 《SpringMVC从入门到放肆》二、SpringMVC的执行流程及默认配置

    上一篇博文我们做了一个hello world的程序,并且已经成功的跑起来了。这一篇我们来深入的了解一下SpringMVC的执行流程以及一些其它的配置。 一、执行...

    I Tech You_我教你
  • 《SpringMVC从入门到放肆》七、模型与视图ModelAndView

    上一篇我们了解了开发一个Controller的4种方法,如果不记得的朋友可以看看上一篇博文,今天我们来继续了解SpringMVC的模型与视图ModelAndVi...

    I Tech You_我教你
  • Spring笔记(二)

    1.注解ioc 1.开启注解扫描 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www...

    lwen
  • Spring 中基于 AOP 的 XML操作方式

    Spring 框架的一个关键组件是面向方面的编程(AOP)框架。面向方面的编程需要把程序逻辑分解成不同的部分称为所谓的关注点。跨一个应用程序的多个点的功能被称为...

    Jerry Wang
  • Activiti学习——Activiti与Spring集成

    与Spring集成 基础准备 目录结构 ? 相关jar包 Activiti的相关jar包  Activiti依赖的相关jar包  Spring的相关jar包  ...

    庞小明
  • Spring(3)——AOP

    作用:在程序运行期间,不修改源码对已有方法进行增强。 优势:1减少重复代码,2提高开发效率,3维护方便

    羊羽shine
  • day34_Spring学习笔记_02

    1.2.2.2、切面类   MyAspect.java的代码同上 1.2.1.2、切面类 代码,这里不再赘述!

    黑泽君
  • aop-aspectJ的通知不被执行

    qubianzhong
  • Spring MVC使用redis共享session

    Spring Web MVC是基于Java的轻量级Web框架,使用了MVC架构模式的思想。Spring Web MVC核心架构为:

    腾讯云数据库 TencentDB

扫码关注云+社区

领取腾讯云代金券