SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是 DispatcherServlet,DispatcherServlet负责转发每一个Request请求给相应的Handler,Handler处理 以后再返回相应的视图(View)和模型(Model),返回的视图和模型都可以不指定,即可以只返回Model或只返回View或都不返回。在使用注解 的SpringMVC中,处理器Handler是基于@Controller和@RequestMapping这两个注解的,@Controller声明 一个处理器类,@RequestMapping声明对应请求的映射关系,这样就可以提供一个非常灵活的匹配和处理方式。
DispatcherServlet是继承自HttpServlet的,既然SpringMVC是基于DispatcherServlet的,那么 我们先来配置一下DispatcherServlet,好让它能够管理我们希望它管理的内容。HttpServlet是在web.xml文件中声明的。
一、从视图向controller传递值, controller <— 视图
1、通过@PathVariabl注解获取路径中传递参数
1 @RequestMapping(value = "/{id}/{str}") 2 public ModelAndView helloWorld(@PathVariable String id, 3 @PathVariable String str) { 4 System.out.println(id); 5 System.out.println(str); 6 return new ModelAndView("/helloWorld"); 7 }
2、
1)简单类型,如int, String, 应在变量名前加@RequestParam注解,
例如:
@RequestMapping("hello3") public String hello3( @RequestParam("name" ) String name, @RequestParam("hobby" ) String hobby){ System. out.println("name=" +name); System. out.println("hobby=" +hobby); return "hello" ; }
但这样就要求输入里面必须有这两个参数了,可以用required=false来取消,例如:
@RequestParam(value=”name”,required=false) String name
但经测试也可以完全不写这些注解,即方法的参数写String name,效果与上面相同。
2)对象类型:
@RequestMapping("/hello4" ) public String hello4(User user){ System.out.println("user.getName()=" +user.getName()); System.out.println("user.getHobby()=" +user.getHobby()); return "hello"; }
Spring MVC会按:
“HTTP请求参数名= 命令/表单对象的属性名”
的规则自动绑定请求数据,支持“级联属性名”,自动进行基本类型数据转换。
此外,还可以限定提交方法为POST,即修改方法的@RequestMapping注解为
@RequestMapping(value=”/hello4″,method=RequestMethod.POST)
最后,注意,如果这里提交过来的字符出现乱码,应该在web.xml里加入如下filter:
<filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name > <url-pattern>/*</url-pattern> </filter-mapping>
返回数据到页面几种方式:
-
//返回页面参数的第二种方式,在形参中放入一个Model @RequestMapping(value = "/hello2.htm") public String hello2(int id,Model model){ System.out.println("hello2 action:"+id); model.addAttribute("name", "huangjie"); //这个只有值没有键的情况下,使用Object的类型作为key,String-->string model.addAttribute("ok"); return "hello"; }
-
//返回页面参数的第一种方式,在形参中放入一个map @RequestMapping(value = "/hello1.htm") public String hello(int id,Map<String,Object> map){ System.out.println("hello1 action:"+id); map.put("name", "huangjie"); return "hello"; }
相关推荐
SPRING MVC 请求参数获取的几种方法 SPRING MVC 框架中,获取请求参数是非常重要的一步,下面将介绍 SPRING MVC 中获取请求参数的几种方法。 1. 使用 @PathVariable 注解获取路径中传递参数 在 SPRING MVC 中,...
除了基本的映射方式,Spring MVC还提供了许多高级特性,如路径变量、请求参数、通配符等。例如,使用`@PathVariable`可以从URL路径中提取动态值: ```java @RequestMapping("/user/{id}") public String getUser(@...
Spring MVC 的核心处理流程主要包括以下几个步骤: 1. **请求接收**:客户端发送 HTTP 请求到服务器。 2. **前端控制器**:DispatcherServlet 接收到请求并调用 HandlerMapping。 3. **处理映射**:HandlerMapping ...
`<mvc:annotation-driven>`:这是 Spring MVC 的一个重要注解,它启用了 Spring MVC 对注解的支持,例如 `@RequestMapping`, `@RequestParam`, `@PathVariable` 等,使得我们可以使用注解来处理请求映射和参数绑定。...
Spring3 MVC请求参数获取的几种方法小结 在 Spring3 MVC 框架中,获取请求参数是非常重要的步骤,本文将介绍四种获取请求参数的方法,分别是通过@PathVariabl获取路径中的参数、@ModelAttribute获取POST请求的FORM...
基于注解的Spring MVC是一种流行的Java Web开发框架,它极大地简化了控制器的配置和处理请求的方式。本节将深入探讨Spring MVC的注解驱动机制、基础配置以及控制器的返回值分析。 首先,让我们来看看Spring MVC的...
总之,Spring MVC 提供了一种高效、灵活的方式来构建 Web 应用,它的注解驱动和组件扫描使得代码更简洁,可维护性更强。通过不断的实践和学习,你可以掌握更多高级特性和最佳实践,进一步提升开发效率。
本教程将详细解析Spring MVC后台接收请求参数的多种方式。我们将重点关注GET和POST请求,这两种请求方式在Web开发中最为常见。以下是对每种方式的详细说明: 1. **路径变量(Path Variables)** 在Spring MVC中,...
- **注解式控制器**是Spring MVC推荐的一种控制器实现方式。 - **主要注解**: - `@Controller`:标记类为控制器。 - `@RequestMapping`:映射请求到处理方法。 - `@RequestParam`:获取请求参数。 - `@...
例如,`@RequestMapping` 用于映射请求,`@RequestParam` 用于获取请求参数,`@PathVariable` 处理路径变量,`@ModelAttribute` 用于模型绑定等。 ### 6. 示例程序 `demo1` 在提供的 `demo1` 示例程序中,我们可以...
它是Spring MVC早期版本中用于处理HTTP请求的一种控制器实现。在这个主题“spring mvc_03”中,我们将深入探讨`MultiActionController`的工作原理、使用场景以及与现代Spring MVC实践的对比。 `...
总结一下,实现"Jxls+Spring MVC实现Excel导出"涉及以下几个关键步骤: 1. 引入Jxls和Apache POI依赖。 2. 配置Spring MVC的视图解析器。 3. 创建Excel模板文件,使用Jxls特定的标签来构造动态内容。 4. 在控制器中...
Spring MVC是一种流行的Java框架,用于构建Web应用程序。它基于MVC(Model-View-Controller)设计模式,这种模式将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。Model负责数据和...
通过实践案例`ParamPassDemo.java`,我们将了解到几种常见的方法,以便在控制器中获取用户提交的数据。 1. **路径变量(Path Variables)** 当URL路径中包含动态部分时,可以使用`@PathVariable`注解来捕获这些值...
4. **Spring MVC配置文件**:`springmvc-servlet.xml`是Spring MVC的配置中心,你可以在这里定义视图解析器、拦截器、数据源、bean的扫描路径以及其他相关设置。例如,你可能会配置一个InternalResourceViewResolver...
标题 "spring3_mvc_lib_支持注解方式" 指的是Spring框架的第三个主要版本(Spring 3)中引入的MVC模块对注解的支持。在这个版本中,Spring MVC开始广泛采用注解来简化Web应用程序的开发,使得开发者不再需要编写大量...
总的来说,Spring MVC提供了一种高效且灵活的方式来构建Web应用,通过其丰富的注解和组件,开发者可以更专注于业务逻辑,而不是繁琐的请求处理细节。理解并熟练掌握Spring MVC,对于提升Web开发效率和代码质量具有...
1. **简洁的接口定义**:JSON-RPC的调用方式简洁,只需要指定方法名和参数即可,与Spring MVC的注解式编程风格相吻合。 2. **异步通信**:利用AJAX技术,JSON-RPC可以实现客户端的无刷新更新,提升用户体验。 3. **...
在Spring MVC中,你可以通过`@RequestMapping`注解来指定URI路径。 2. **HTTP方法**:GET、POST、PUT、DELETE等HTTP方法对应REST服务中的CRUD操作。GET用于获取资源,POST用于创建资源,PUT用于更新资源,DELETE...