spring mvc 基于注解的使用,相当于配置文件的使用简单的多.下面讲一下spring mvc 注解的使用
先看一下再未使用注解前,spring mvc的配置文件
- <?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:p="http://www.springframework.org/schema/p"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.0.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
- <bean
- class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="prefix" value="/" />
- <property name="suffix" value=".jsp" />
- </bean>
- <!-- 声明一个Controller中使用多个方法 -->
- <bean id="parameterMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
- <!-- 传参数时用这个作为名称 -->
- <property name="paramName" value="action"></property>
- </bean>
- <!-- 声明DispatcherServlet不要拦截下面声明的目录 -->
- <mvc:resources location="/images/" mapping="/images/**"/>
- </beans>
上面我们声明在一个控制器中使用多个方法.
再看看spring mvc使用注解配置文件的配置:
- <?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:p="http://www.springframework.org/schema/p"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.0.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
- <!-- 开启注解扫描功能 -->
- <context:component-scan base-package="gd.hz.springmvc.controller"></context:component-scan>
- <!-- 开启注解 DefaultAnnotationHandlerMapping:映射相应的类,DefaultAnnotationHandlerMapping相应的类方法 -->
- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>
- <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>
- <bean
- class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="prefix" value="/" />
- <property name="suffix" value=".jsp" />
- </bean>
- </beans>
上面我们开启了注解扫描,注入了AnnotationMethodHandlerAdapter作用是对有RequestMapping注解的控制器进行HTTP路径、HTTP方法和请求参数解析.DefaultAnnotationHandlerMapping作用是映射处理程序方法级别的HTTP路径.
上面的两个注解也可以用mvc标签表示:
- <?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:p="http://www.springframework.org/schema/p"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.0.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
- <!-- 开启注解扫描功能 -->
- <context:component-scan base-package="gd.hz.springmvc.controller"></context:component-scan>
- <mvc:annotation-driven/>
- <bean
- class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="prefix" value="/" />
- <property name="suffix" value=".jsp" />
- </bean>
- </beans>
接下来新建一个控制器:
- package gd.hz.springmvc.controller;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.servlet.ModelAndView;
- @Controller("userController")
- public class UserController {
- @RequestMapping("addUser")
- public ModelAndView addUser()
- {
- return new ModelAndView("hello");
- }
- }
注解 @Controller标志该类为控制器.注解@RequestMapping,映射相应的路径.
我们可以这样访问:http://localhost/Springmvc/addUser , 其中 addUser 就是@RequestMapping映射的名称,名字随意.接下来我们将对spring mvc的注解进行介绍.
首先用@Controller("userController")标志一个类为控制器,@Controller负责一个bean注册到spring上下文中,bean的ID默认是类名首字母小写,也可以自己定义,下面我显示的把名字定义为userController.
- package gd.hz.springmvc.controller;
- import org.springframework.stereotype.Controller;
- @Controller("userController")
- public class UserController {
- }
@RequestMapping,用来定义访问的URL,可以定义在类上也可以定义在方法上.把它定义在类方法上,类下面的所有方法访问路径都要它之下.看下面的例子:
- package gd.hz.springmvc.controller;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.servlet.ModelAndView;
- import org.springframework.web.bind.annotation.RequestMapping;
- @Controller("userController")
- @RequestMapping("user")
- public class UserController {
- //当有两个以上的配置时value不可以省略,url路径可以省去"/"
- @RequestMapping("addUser")
- public ModelAndView addUser()
- {
- String str = "Springmvc 您好啊!!--->addUser" ;
- return new ModelAndView("hello");
- }
- }
我们在UserController 上使用了@RequestMapping("user"),在方法上使用了@RequestMapping("addUser")这样的话,我们访问这个方法的URL为:http://localhost/项目名称/user/addUser,并返回一个名为hello的视图
下面是注解@RequestMapping的一些常用用法,其中当有配置有二个属性时,value不可省略.另外"result" , str ,是返回数据,我的下一章会介绍.
- package gd.hz.springmvc.controller;
- import javax.servlet.http.HttpServletRequest;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.servlet.ModelAndView;
- @Controller("userController")
- @RequestMapping("user")
- public class UserController {
- //method=RequestMethod.POST
- @RequestMapping(value="addUser/tow" , method=RequestMethod.GET)
- public ModelAndView addUser2()
- {
- String str = "Springmvc 您好啊!!--->addUser2" ;
- return new ModelAndView("hello" , "result" , str);
- }
- //URL为user/addUser/thread
- @RequestMapping("addUser/thread")
- public ModelAndView addUser3()
- {
- String str = "Springmvc 您好啊!!--->addUser3" ;
- return new ModelAndView("hello" , "result" , str);
- }
- //访问文件二级路径 URL为user/addUser/thread 返回定义目录下的test目录的Hello.jsp文件
- @RequestMapping("addUser/six")
- public String addUser6(HttpServletRequest request)
- {
- String str = "Springmvc 您好啊!!--->addUser6" ;
- request.setAttribute("result", str);
- return "test/hello" ;
- }
- }
@RequestParam:
required :参数是否必须,boolean类型,可选项,默认为true
value: 传递的参数名称,String类型,可选项,如果有值,对应到设置方法的参数
defaultValue:String类型,参数没有传递时为参数默认指定的值
默认情况下,当从表单或者以GET传来的参数跟Controller中的方法中的参数名不一样时就要使用此注解:
- @RequestMapping("/addUser/eight")
- public void addUser8(int id, @RequestParam("name") String username) {
- //这样做进行URL请求访问这个方法的时候,就会先从request中获取参数id的值赋给参数变量id,
- //从request中获取参数name的值赋给参数变量username
- }
@PathVariable:可以利用请求路径传值,当指定名称跟变量名不一样时需要指定名字,如下.
- @RequestMapping("addUser/{seven}")
- public String addUser7(@PathVariable("seven") String name , HttpServletRequest request)
- {
- request.setAttribute("result", name);
- return "test/hello" ;
- }
{seven}当url传来什么他就是什么,但是当接收它的变量名不一样时需要用@PathVariable指定.
相关推荐
Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于...
在这个“最全的Spring MVC注解例子”中,我们将深入探讨Spring MVC的核心注解,以及如何实现异步请求处理和错误管理。 1. **Spring MVC核心注解** - `@Controller`:标记一个类为处理HTTP请求的控制器。这是Spring...
在Spring MVC框架中,注解的使用极大地简化了配置,提高了开发效率。Spring MVC通过注解可以实现控制器、方法映射、模型数据绑定、视图解析等关键功能。本实例将深入探讨Spring MVC中常见的注解及其应用。 1. `@...
IT学习者Spring MVC注解实例.pdf
Spring MVC 是一个基于Java的轻量级Web应用框架,它为开发者提供了模型-视图-控制器(MVC)架构,使开发人员能够更好地组织和分离应用程序的业务逻辑、数据处理和用户界面。Spring MVC是Spring框架的一个核心组件,...
在“基于注解的Spring MVC环境搭建”中,我们将深入探讨如何利用注解来简化配置,快速建立一个运行中的Web项目。这篇博文(尽管描述为空,但提供了链接)很可能是关于创建一个基本的Spring MVC项目并使用注解来管理...
本节将深入探讨Spring MVC注解及其在实际应用中的实现方式。 首先,Spring MVC注解允许开发者以声明式的方式配置控制器,避免了传统的XML配置文件。这极大地简化了代码,提高了可读性和维护性。例如,`@...
**基于JPA+Hibernate+Spring+Spring MVC注解方式项目详解** 在现代Java Web开发中,Spring框架扮演了核心角色,而Spring MVC作为其MVC(Model-View-Controller)实现,提供了强大的Web应用程序构建能力。同时,JPA...
总结起来,这个"Spring MVC注解项目实例"涵盖了Spring MVC框架的核心元素,包括注解驱动的控制器、拦截器的使用,以及数据库操作。它为初学者提供了一个动手实践的机会,帮助他们快速掌握Spring MVC的开发技巧。
以上就是Spring MVC中一些关键注解的介绍。通过这些注解,开发者可以轻松地构建出松散耦合、易于测试的Web应用。在提供的链接文章"spring mvc 注解实现"中,你应该能发现更多关于如何实际应用这些注解的例子和详细...
Spring MVC 是一款强大的Java Web开发框架,用于构建高效、可维护和模块化的Web应用程序。它作为Spring框架的一部分,提供了一种优雅的方式来处理HTTP请求和响应,使得开发者可以专注于业务逻辑而不是底层实现。在这...
3. **注解驱动的控制器**:Spring MVC 4.0广泛使用了Java注解,如@Controller、@RequestMapping等,使控制器类的定义更加简洁,减少了XML配置。 4. **路径变量**:在@RequestMapping注解中,可以使用路径变量(path...
在这个注解实例中,我们将深入探讨Spring MVC中的核心注解以及如何利用它们实现对数据库表的增删改查(CRUD)操作。拦截器是Spring MVC中的另一个重要概念,它允许我们在请求处理前后执行自定义逻辑。 首先,让我们...
在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第11部分,重点可能是建立在前几部分的基础之上,进一步深化对这三个核心技术的理解和实践。 ...
总结,这个压缩包提供了一个完整的Spring MVC和MyBatis整合的示例,包含了数据库脚本和详尽的注释,无论你是初学者还是有经验的开发者,都能从中受益。通过研究源码,你可以掌握Web应用的开发流程,理解Spring MVC和...
在Spring MVC中,开发者可以通过@Autowired注解自动装配依赖,使得代码更易于测试和维护。 此外,Spring MVC还提供了数据绑定和验证功能。表单提交的数据可以直接绑定到控制器方法的参数上,通过@ModelAttribute...
十六、Spring MVC关于写几个配置文件的说明:介绍了在Spring MVC项目中需要配置哪些文件以及这些文件的作用,包括DispatcherServlet的配置文件、web.xml配置等。 十七、Spring MVC如何取得Spring管理的bean:阐述了...
Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建Web应用程序的后端控制器。这个教程“Spring MVC - A Tutorial”旨在帮助开发者深入理解和掌握Spring MVC的核心概念和...
在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第12部分,将帮助开发者掌握如何在Java Web项目中高效地集成这三个核心框架,实现松耦合、可...