`

springmvc获取传递参数的几种方式

 
阅读更多

 

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;
    }

 

 

 

分享到:
评论

相关推荐

    SpringMVC后台接收请求参数的几种方式Demo

    以下是对每种方式的详细说明: 1. **路径变量(Path Variables)** 在Spring MVC中,我们可以使用`@PathVariable`注解来捕获URL模板中的动态部分。例如,一个RESTful API可能有一个获取用户信息的路径`/users/{...

    SpringMVC界面跳转及参数传递.docx

    在SpringMVC中,有多种方式可以将数据从控制器传递到视图,主要有以下几种: 1. **Servlet传统API(HttpServletRequest request)**:你可以直接从`HttpServletRequest`对象中获取请求参数,通过`getParameter()`或...

    SPRING MVC 的请求参数获取的几种方法

    1. 使用 @PathVariable 注解获取路径中传递参数 在 SPRING MVC 中,可以使用 @PathVariable 注解获取路径中传递的参数。例如: ```java @RequestMapping(value = "/{id}/{str}") public ModelAndView helloWorld(@...

    springMVC接收和返回参数各种情况整合

    #### 一、Spring MVC 前台向后台传递参数的不同形式 在实际的开发过程中,我们经常会遇到不同的前端数据格式以及后端处理这些数据的方式。本文将详细介绍几种常见的Spring MVC接收前端数据的方法,并提供具体的实现...

    浅谈SpringMVC jsp前台获取参数的方式 EL表达式

    在SpringMVC的控制器方法中,我们可以使用以下几种方式将数据传递到视图层(JSP): - **`ModelAndView`**: 可以通过创建一个`ModelAndView`对象,并使用`setViewName()`设置视图名称,然后使用`addObject()`或`...

    springMVC使用Ajax请求数据

    在SpringMVC中,Ajax请求通常涉及到以下几个关键步骤: 1. **前端准备**: - 首先,你需要在HTML页面中引入jQuery库,因为它是广泛使用的JavaScript库,提供了方便的Ajax函数。 - 在HTML元素上添加事件监听器,...

    SpringMVC教程及实现原理

    - **参数传递**:SpringMVC支持更加灵活的参数传递方式,可以通过注解(如`@RequestParam`、`@PathVariable`等)来直接获取请求参数,提高了开发效率。 综上所述,SpringMVC作为一种轻量级的Web框架,不仅提供了...

    14-SpringMVC.pdf

    - **静态资源处理**:SpringMVC提供了一种简单的方式来映射静态资源的请求,通常在web.xml中配置DispatcherServlet的init-param属性,设置"dispatchOptionsRequest"为"true"。 通过上述内容的介绍,我们可以了解到...

    springmvc-data-object

    Spring MVC提供了一种优雅的方式——数据绑定,来自动映射请求参数到Java对象的属性上。例如,我们可以创建一个User类,然后在控制器方法中声明一个User类型的参数,Spring MVC会自动将请求中的相关参数值填充到User...

    springMVC相关笔记

    在 Spring MVC 中,值传递主要通过以下几种方式实现: - **模型属性绑定**:使用 `@RequestParam` 注解来获取请求参数,如 `@RequestMapping("/hello") public String hello(@RequestParam("name") String name) ...

    springmvc前台向后台传值几种方式总结(从简单到复杂)

    本文主要探讨了四种在Spring MVC中从前端(通常是HTML表单)向后端(控制器)传递值的方式,从简单到复杂逐步展开。 1. **基本数据类型**: 当需要传递简单类型如`int`, `String`等时,可以直接在控制器方法中声明...

    SpringMVC——处理器方法参数的处理.docx

    其次,我们来看看几种常见的处理器方法参数类型: 1. **Servlet API 参数**: - 可以直接在处理器方法中声明`HttpServletRequest`、`HttpServletResponse`、`HttpSession`等Servlet API参数,以直接访问请求、响应...

    springmvc 3.2.8 restful支持

    REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,强调资源的表述和状态转移。 在Spring MVC 3.2.8中,RESTful支持主要体现在以下几个方面: 1. **URL映射与请求...

    springmvc003.rar eclipse导出项目 jsp

    这里提到了"java的几种接收方式",这可能包括使用模型绑定(ModelDriven、ModelAttribute注解)、@RequestParam、@PathVariable以及@RequestBody等不同方式接收前端传递的数据。 "jar包版本 例:spring-webmvc-4.2.5...

    springMVC+多线程+kafka的 demo基于maven

    - Java的`Executors`类提供了几种预定义的线程池类型,如`newFixedThreadPool`用于创建固定大小的线程池,`newCachedThreadPool`用于创建缓存线程池等。 - 线程池可以通过调整核心线程数、最大线程数、线程超时...

    SpringMvc 第五讲 2

    还可以使用`@PathVariable`来获取URL中的动态参数。 5. **视图解析器(ViewResolver)**:SpringMvc使用视图解析器来根据Controller返回的视图名找到对应的视图模板,如JSP、Thymeleaf等。默认的视图解析器是...

    SpringMVC笔记

    它是一个轻量级的MVC(Model-View-Controller)架构,提供了一种解耦的方式,使得开发者可以更加专注于业务逻辑,而不是底层的HTTP处理。SpringMVC通过DispatcherServlet作为前端控制器,接收请求,分发到相应的...

    SSM笔记-SpringMVC自定义视图及重定向视图、语言国际化

    总的来说,SpringMVC的自定义视图让我们能灵活地控制视图的呈现方式,重定向视图提供了页面间的有效导航,而语言国际化则让我们的应用能够跨越地域限制,服务全球用户。掌握这些技术,对于开发健壮、易维护的Web应用...

    解决SpringMvc后台接收json数据中文乱码问题的几种方法

    例如,在`@RequestParam`注解的参数前,你可以先获取原始的字节数组,然后用`getBytes("ISO-8859-1")`将其转换为ISO-8859-1编码,再用`new String(ISO8859_1_bytes, "UTF-8")`将其转换回UTF-8。这样可以确保中文字符...

    springmvc数据的封装过程详解

    首先,SpringMVC会从HTTP请求中获取参数,这些参数可以是通过GET或POST方法传递的。然后,SpringMVC会根据参数的类型将其转换为对应的Java类型。最后,SpringMVC会使用这些参数构建出对应的Java对象。 二、...

Global site tag (gtag.js) - Google Analytics