`
Josh_Persistence
  • 浏览: 1646112 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

Spring3.X @MVC - (二)So Easy的注解功能

阅读更多

前言:

一、总共有10节,也就是10篇博客来讲述Spring的MVC,几乎涵盖了所有Spring MVC中的内容。

 

二、我创建的例子是一个球场预订系统,例子我已经测试调试通过,是一个Maven的project,包含一个Parent project:wsheng-spring-base和一个子Module:wsheng-spring-mvc.

 

三、在Eclipse中直接import maven的project即可,会同时引入上诉两个project的。

 

四、如果你没有耐心,可以不必往下学习,因为网上有很多例子,但是都是讲的Spring MVC很少的面,而且你可以快速的上手,但如果你想真正了解Spring MVC中的很多细节,就可以慢慢的去看博客(从第一节到第十节),如果有什么问题,欢迎信息告诉我。

 

五、学习的方法是你可以先将源码导入到eclipse中,然后根据博客上的内容,对照源码,慢慢消化,这是个漫长的过程,但是会帮助你了解很多Spring MVC的细节。

===================================================================================

 

 

在 Spring3.X @MVC - (一)重要的配置文件 http://josh-persistence.iteye.com/blog/1873138的基础上,接着讨论Spring MVC的引用。

 

6) 激活Spring MVC注解扫描

    a: <context:component-scan>启动Spring的组件扫描功能

    b:<context:component-sacn>扫描带有@Controller,@RequestMapping的Java类或者方法。

注:@RequestMapping分为类级别和方法级别两种。可以在court-servlet.xml中分别注册一个

DefaultAnnotationHandlerMapping和一个AnnotationMethodHanlderAdapter实例。

 

7)使用注解@Controller创建SpringMVC控制器,使用@RequestMapping进行URL路由。

      基于注解的类可以是任意的类,可以不用实现特设的接口或者扩展特殊的父类。使用@Controller注解这种类。@RequestMapping注解可以应用到类级别或者方法级别。第一种映射策略是将一个特殊的URL模式映射到一个控制器类,然后映射特定的HTTP方法到每个处理程序中的方法。

@Controller

@RequestMapping("/welcome")

public class WelcomeController {

    @RequestMapping(method = RequestMethod.GET)

    public String welcome(Model model) {

        Date today = new Date();

model.addAttribute("today",today);

        return "welcome";

    }

}

上面的代码直观的表现出需要显示在视图View层上的数据today被加到了Model层中。@RequestMapping(method = RequestMethod.GET)注解用于将welcome方法装饰城控制器默认的HTTP GET处理程序的方法。值得注意的是,如果没有声明默认的HTTP GET处理程序方法,会抛出SeveltException异常。因此Spring MVC控制器至少能起到一个URL路由和默认HTTP GET处理程序的方法。

 

8)@Autowired注解使得不需要使用XML文件注入属性。

<bean class="A">

      <property name="b" ref="b"/>

</bean>

 

9)创建JSP视图

Spring MVC支持许多种用于不同表现技术的视图,这些视图包括:JSPs, HTML, PDF, Excel(XLS),XML,JSON,Atom以及RSS feeds,JasperReports和其他第三方视图实现。

 

10)用@RequestMapping映射请求:

当DispatcherServlet接收到一个Web请求,它试图将请求发往用@Controller注解声明的不同控制器类。这个调度过程将去扫描用@RequestMapping注解的各个方法。

a: 将多个URL映射到同一个方法上:

@RequestMapping(value={"/member/remove","/member/delete"}, method=RequestMethod.GET)

public String removeMember(@RequestParam("memberName") String memberName){  }

 

b:映射类,@RequestMapping注解支持使用通配符(*)

@Controller

@RequestMapping("/member/*")

public class MemberController  {

 

@RequestMapping("display/{user}")

public String removeMember(@PathVariable("user") String user) {

...

}

 

@RequestMapping

public void memberList() {

1. 该方法使用了@RequestMapping注解,但是缺少URL值。因为类级别使用了/member/* URL通配符,这个方法可看成是

全能的方法执行。任何URL请求(例如/member/abcdefg或者/member/randomroute)都会触发该方法。

 

2. void的返回值,这使处理程序方法默认指向同名的视图,也就是memberList.

}

 

}

 

11) 映射8种HTTP类型

默认情况下,@RequestMapping注解假定所有请求都是HTTP GET类型,这在Web应用中是最常见的情况。如果需要指定POST类型,可以使用

@RequestMapping(method=RequestMethod.POST)或者

@RequestMapping(value="processUser" method= RequestMethod.POST)

附:HTTP请求类型一共有8种情况:HEAD, GET,POST,PUT,DELETE,TRACE,OPTIONS,CONNECT.

 

看了如上的介绍后,你可能会问,URL扩展名.HTML和.JSP在哪里?

          你可能注意到,@RequestMapping注解中指定的所有URL都没有文件扩展名如.html或者.jsp的踪影。这是与MVC设计一致的好习惯,但是没有得到广泛地采用。

         控制器不应该与任何类型的表现视图技术的扩展名(如HTML或者JSP)关联。这就是控制器返回逻辑视图,而且声明匹配的URL应该没有扩展名的原因。

        如今,应用常常要以不同的格式(如XML,JSON,PDF或者XLS(Excel))提供相同的内容。检查请求中提供的扩展名(如果有)以及确定使用的视图技术应该留给视图解析器完成。

分享到:
评论

相关推荐

    Spring MVC – Easy REST-Based JSON Services with @ResponseBody

    标题中的“Spring MVC – Easy REST-Based JSON Services with @ResponseBody”是指使用Spring MVC框架构建基于REST的JSON服务,并通过使用`@ResponseBody`注解来简化这一过程。REST(Representational State ...

    Spring mvc整合mybatis例子

    在IT行业中,Spring MVC 和 MyBatis 是两个非常重要的框架,它们分别负责Web应用程序的控制器层和数据访问层。Spring MVC 提供了模型-视图-控制器架构模式的实现,而MyBatis则是一个轻量级的SQL映射框架,用于简化...

    企业后台管理基础框架 hsweb.zip

    演示示例:demo.hsweb.me测试用户:test (test2,test3,test4....) 密码:123456演示项目源码:hsweb-demo技术选型第三方:MVC:spring-boot. 开箱即用,学习成本低,部署方便(main方法运行).ORM:mybatis. 配置灵活,简单方便...

    Learn-Spring-Core-Framework-the-Easy-Way-:Packt Publishing轻松学习Spring Core Framework!

    Spring MVC是Spring提供的用于构建Web应用的模块,它提供了一种模型-视图-控制器架构,使开发者能有效地组织和分离业务逻辑、展示逻辑和数据。Spring Boot是Spring的另一个重要组成部分,它为快速搭建和运行Spring...

    easypoi功能文档,介绍easypoi各种功能使用

    - 确定需要的Easypoi子模块,如基础注解包、导入导出工具包、Spring MVC支持等。 - 使用Maven或直接下载JAR文件,添加至项目依赖。 **4. 测试** - 包括JUnit单元测试和Spring MVC视图测试。 - 运行示例应用程序...

    easy_springmvc:从头构建Spring Web MVC项目

    在本项目"easy_springmvc"中,我们将深入学习如何从零开始构建一个基于Spring Web MVC框架的Java Web应用程序。Spring MVC是Spring框架的一部分,它为开发者提供了强大的模型-视图-控制器(MVC)架构支持,使得创建...

    spring mvc+mybatis+oracle+jquery easy ui实现增删改查,带拦截器

    在IT行业中,构建Web应用程序是常见的任务,而Spring MVC、MyBatis、Oracle数据库和jQuery Easy UI这四个组件是构建高效、稳定且用户友好的应用的常见选择。下面将详细阐述这些技术及其在实现增删改查(CRUD)操作...

    spring security用户权限项目

    在这个项目中,这三者协同工作,Spring Security 负责后台的权限控制,Spring MVC 处理业务逻辑和数据交互,而 jQuery Easy-UI 则提供了用户友好的界面。理解这些知识点对于开发和维护这样一个用户权限管理项目至关...

    基于 SpringBoot 的快速开发模板.zip

    Spring Boot 2.7.x(最新) Spring MVC MyBatis MyBatis Plus 数据访问(开启分页) Spring Boot 调试工具和项目处理器 Spring AOP 切面编程 Spring Scheduler 定时任务 Spring 事务注解 数据存储 MySQL ...

    easypoi工具包-其他

    base 导入导出的工具包,可以完成Excel导出,导入,Word的导出,Excel的导出功能4.easypoi-web 耦合了spring-mvc 基于AbstractView,极大的简化spring-mvc下的导出功能5.sax 导入使用xercesImpl这个包(这个包可能...

    ssm框架实现的学生系统.7z

    SSM框架是Java web开发中常用的三大框架Spring、Spring MVC和MyBatis的组合,用于构建高效、灵活的Web应用程序。在这个学生系统中,开发者利用SSM的优势来管理学生信息,实现了数据的增删改查等功能。以下是关于SSM...

    Java 后端万用项目初始化模板

    Spring Boot 2.7.x(贼新) Spring MVC MyBatis + MyBatis Plus 数据访问(开启分页) Spring Boot 调试工具和项目处理器 Spring AOP 切面编程 Spring Scheduler 定时任务 Spring 事务注解 业务特性: 业务代码生成...

    RestEasy使用说明

    4. **与其他框架集成**:除了Seam,RESTEasy还支持与EJB、Guice、Spring和Spring MVC的集成,提供了广泛的应用场景。 **JAX-RS与RESTful服务** JAX-RS,全称Java API for RESTful Web Services,是Java中用于创建...

    使用SpringMVC +注解 制作的增删改查,大量的注释,以及一个前端项目

    Spring MVC是企业级Java Web开发的主流框架,它通过注解实现依赖注入、AOP(面向切面编程)、事务管理等功能,极大地提高了开发效率。注解在Spring MVC中的应用,如@Controller、@RequestMapping、@Autowired等,...

    easypoi教程总结

    1. Spring MVC 配置:easypoi支持与Spring MVC框架集成,提供了多种配置方式。 2. 注解 View JeecgSingleExcelView:easypoi提供了多种View注解,例如JeecgSingleExcelView注解,用于标识Excel视图的配置信息。 ...

    EasyPoi教程

    easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板 语言(熟悉的表达式语法),完成以前复杂的写法 ...

    easyweb-security200504.zip

    3. **SpringMVC**:SpringMVC是Spring框架的一部分,是一个用于构建Web应用的模型-视图-控制器(MVC)框架,它提供了处理HTTP请求和响应的强大功能。 4. **MyBatis**:MyBatis是一个优秀的持久层框架,它支持定制化...

    ssm项目案例 以及easyui分页功能实现

    SSM项目案例以及EasyUI分页功能实现是一个典型的Java Web开发中的应用场景,主要涉及Spring、Spring MVC和MyBatis三个核心框架,以及EasyUI作为前端展示的组件库。以下是关于这些技术的详细说明: **Spring**:...

    StudentManger.zip

    3. **MyBatis**:这是一个轻量级的持久层框架,它将SQL语句与Java代码分离,通过XML或注解配置,实现了灵活的数据库操作。在"StudentManager"中,MyBatis可能用于与MySQL数据库的交互,包括学生信息的增删改查等操作...

    JavaWeb项目源码(包括但不局限于Servlet、SSH、SSM、SpringBoot).zip

    JavaWeb项目源码涵盖了一系列核心的技术栈,包括Servlet、SSH(Struts2、Spring、Hibernate)、SSM(SpringMVC、Spring、MyBatis)以及SpringBoot。这些框架和技术是现代Java Web开发中的基石,它们提供了高效、灵活...

Global site tag (gtag.js) - Google Analytics