1.基本传参方式
只要表单中input的name值和方法参数变量名一直就行。参数类型最好不要用基本数据类型,如果前端传递的参数是null或空字符串就会发生数据转换的异常,所以最好用包装类Integer等。当然也能用Pojo作为参数类型,只要参数值与属性名一一对应即可。比如:
模型对象: public class User { private String firstName; private String lastName; //getter、setter省略 } Controller代码: @RequestMapping("/user") public void test(User user) { } 表单: <form action="saysth.do" method="post"> <input name="firstName" value="张" type="text"/> <input name="lastName" value="三" type="text"/> ...... </form>
2.直接用HttpServletRequest获取
@RequestMapping("/") public String get(HttpServletRequest request, HttpServletResponse response) { System.out.println(request.getParameter("a")); return "helloWorld"; }
3.用注解@RequestParam绑定请求参数
@RequestMapping("/login") public String login(@RequestParam(value="age",required=false,defaultValue="24") String agenum){ return "hello"; }
value属性匹配前台参数,required属性规定是否必须传值(默认为true),若为true且前台没传此参数则抛出异常。defaultValue规定此参数的默认值(存在此参数时,说明前台不是必要传值,required为false)
4.@PathVariable注解获取路径中的参数
@RequestMapping(value="user/{id}/{name}",method=RequestMethod.GET) public String printMessage1(@PathVariable String id,@PathVariable String name) { System.out.println(id); System.out.println(name); return "users"; }
方法参数变量名跟地址{}中的名称一致,当然不一定非要适用于get方法
5.@RequestBody
类似@ResponseBody,它就是将http请求的body部分作为String参数传入,经常用于接受ajax请求传递的json字符串。
@ResponseBody @RequestMapping(value = "/detail", method = RequestMethod.GET, produces = "application/json;charset=UTF-8") public Port detail(@RequestBody String param) { JSONObject object = JSONObject.fromObject(param); String id = object.getString("id"); Port port = iPortService.getPortDetail(id); logger.debug("port Info : " + port); return port; }
相关推荐
以下是对每种方式的详细说明: 1. **路径变量(Path Variables)** 在Spring MVC中,我们可以使用`@PathVariable`注解来捕获URL模板中的动态部分。例如,一个RESTful API可能有一个获取用户信息的路径`/users/{...
在SpringMVC中,有多种方式可以将数据从控制器传递到视图,主要有以下几种: 1. **Servlet传统API(HttpServletRequest request)**:你可以直接从`HttpServletRequest`对象中获取请求参数,通过`getParameter()`或...
1. 使用 @PathVariable 注解获取路径中传递参数 在 SPRING MVC 中,可以使用 @PathVariable 注解获取路径中传递的参数。例如: ```java @RequestMapping(value = "/{id}/{str}") public ModelAndView helloWorld(@...
#### 一、Spring MVC 前台向后台传递参数的不同形式 在实际的开发过程中,我们经常会遇到不同的前端数据格式以及后端处理这些数据的方式。本文将详细介绍几种常见的Spring MVC接收前端数据的方法,并提供具体的实现...
在SpringMVC的控制器方法中,我们可以使用以下几种方式将数据传递到视图层(JSP): - **`ModelAndView`**: 可以通过创建一个`ModelAndView`对象,并使用`setViewName()`设置视图名称,然后使用`addObject()`或`...
在SpringMVC中,Ajax请求通常涉及到以下几个关键步骤: 1. **前端准备**: - 首先,你需要在HTML页面中引入jQuery库,因为它是广泛使用的JavaScript库,提供了方便的Ajax函数。 - 在HTML元素上添加事件监听器,...
- **参数传递**:SpringMVC支持更加灵活的参数传递方式,可以通过注解(如`@RequestParam`、`@PathVariable`等)来直接获取请求参数,提高了开发效率。 综上所述,SpringMVC作为一种轻量级的Web框架,不仅提供了...
- **静态资源处理**:SpringMVC提供了一种简单的方式来映射静态资源的请求,通常在web.xml中配置DispatcherServlet的init-param属性,设置"dispatchOptionsRequest"为"true"。 通过上述内容的介绍,我们可以了解到...
Spring MVC提供了一种优雅的方式——数据绑定,来自动映射请求参数到Java对象的属性上。例如,我们可以创建一个User类,然后在控制器方法中声明一个User类型的参数,Spring MVC会自动将请求中的相关参数值填充到User...
在 Spring MVC 中,值传递主要通过以下几种方式实现: - **模型属性绑定**:使用 `@RequestParam` 注解来获取请求参数,如 `@RequestMapping("/hello") public String hello(@RequestParam("name") String name) ...
本文主要探讨了四种在Spring MVC中从前端(通常是HTML表单)向后端(控制器)传递值的方式,从简单到复杂逐步展开。 1. **基本数据类型**: 当需要传递简单类型如`int`, `String`等时,可以直接在控制器方法中声明...
其次,我们来看看几种常见的处理器方法参数类型: 1. **Servlet API 参数**: - 可以直接在处理器方法中声明`HttpServletRequest`、`HttpServletResponse`、`HttpSession`等Servlet API参数,以直接访问请求、响应...
REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,强调资源的表述和状态转移。 在Spring MVC 3.2.8中,RESTful支持主要体现在以下几个方面: 1. **URL映射与请求...
这里提到了"java的几种接收方式",这可能包括使用模型绑定(ModelDriven、ModelAttribute注解)、@RequestParam、@PathVariable以及@RequestBody等不同方式接收前端传递的数据。 "jar包版本 例:spring-webmvc-4.2.5...
- Java的`Executors`类提供了几种预定义的线程池类型,如`newFixedThreadPool`用于创建固定大小的线程池,`newCachedThreadPool`用于创建缓存线程池等。 - 线程池可以通过调整核心线程数、最大线程数、线程超时...
还可以使用`@PathVariable`来获取URL中的动态参数。 5. **视图解析器(ViewResolver)**:SpringMvc使用视图解析器来根据Controller返回的视图名找到对应的视图模板,如JSP、Thymeleaf等。默认的视图解析器是...
它是一个轻量级的MVC(Model-View-Controller)架构,提供了一种解耦的方式,使得开发者可以更加专注于业务逻辑,而不是底层的HTTP处理。SpringMVC通过DispatcherServlet作为前端控制器,接收请求,分发到相应的...
总的来说,SpringMVC的自定义视图让我们能灵活地控制视图的呈现方式,重定向视图提供了页面间的有效导航,而语言国际化则让我们的应用能够跨越地域限制,服务全球用户。掌握这些技术,对于开发健壮、易维护的Web应用...
例如,在`@RequestParam`注解的参数前,你可以先获取原始的字节数组,然后用`getBytes("ISO-8859-1")`将其转换为ISO-8859-1编码,再用`new String(ISO8859_1_bytes, "UTF-8")`将其转换回UTF-8。这样可以确保中文字符...
首先,SpringMVC会从HTTP请求中获取参数,这些参数可以是通过GET或POST方法传递的。然后,SpringMVC会根据参数的类型将其转换为对应的Java类型。最后,SpringMVC会使用这些参数构建出对应的Java对象。 二、...