Spring3 MVC请求参数获取的几种场景

简介: 访问/aaa/bbb所对应的@Controller @RequestMapping("/aaa")//类级别,可以不需要,如果要了,下面所有的请求路径前都需要加入/aaa public class DefaultController{ @Reque...

 访问/aaa/bbb所对应的@Controller

@RequestMapping("/aaa")//类级别,可以不需要,如果要了,下面所有的请求路径前都需要加入/aaa   
 public class DefaultController{    
    
      @RequestMapping("/bbb")
              //方法级别,必须有,决定这个方法处理哪个请求,如果有类级别 /aaa/bbb
      public String xxx()    
      {    
            //如果没有类级别的就直接请求/bbb   
            return;    
      }    
}

 

 

一、通过@PathVariabl获取路径中的参数

eg1:
例如,访问user/123/chan路径时,执行以上方法,其中,参数id=123,name=chan
@Controller使用以下代码来接收参数

@RequestMapping(value="user/{id}/{name}",method=RequestMethod.GET)
    public String printMessage1(@PathVariable String id,@PathVariable String name, ModelMap model) {
        
        System.out.println(id);
        System.out.println(name);
        model.addAttribute("message", "111111");
        return "users";
    }

 

 

 eg2:

@RequestMapping("/somepath/{userName}")
public String register(@PathVariable(value = "userName") String userName) {
ModelAndView mav = new ModelAndView();
return "user/createSuccess";
}


在springmvc注解的@RequestMapping("/somepath/{userName}")如何处理默认值的情况,比如我在发送请求的时候,userName有时候是没有的,所以导到了不能匹配这个action
http://localhost:8080/spc/movie/somepath/就不能匹配上面的请求:
http://localhost:8080/spc/movie/somepath/tom而这个才可以匹配。


@PathVariable 会将url中的参数解析到对应的方法参数上,需要在@RequestMapping()指定匹配模式
@RequestMapping("somepath/{userName}")
这时你访问地址"somepath/Tom"就能把"Tom"解析到方法参数userName上

http://blog.sina.com.cn/s/blog_beb1f2ec01015pz4.html

 

@RequestMapping("/user")或@RequestMapping(value="/user")  对路径进行映射 
@RequestMapping(params="user")  对参数进行映射 
@RequestParam(value="user") 对参数进行映射 

 

二、用注解@RequestParam绑定请求参数

例如,访问user?name=chan路径时
@Controller如下

@RequestMapping(value = "/user", method = RequestMethod.GET) 
public String setupForm(@RequestParam("name") String name, ModelMap model) { 
   System.out.println(name); 
return "helloWorld";
}

用注解@RequestParam绑定请求参数name到变量name

当请求参数a不存在时会有异常发生,可以通过设置属性required=false解决,

例如: @RequestParam(value="name", required=false)

 

请求方法映射

或 的关系:method={RequestMethod.POST, RequestMethod.GET};

如果需要支持OPTIONS、TRACE,请添加DispatcherServlet在web.xml的初始化参数:dispatchOptionsRequest 和 dispatchTraceRequest 为true。

请求参数映射

@RequestMapping(params="create") 有create参数

@RequestMapping(params!="create") 没有create参数

@RequestMapping(params="create=sfp") create=sfp

@RequestMapping(params="create!=sfp") create!=sfp

且 的关系 @RequestMapping(params={"test1", "test2=create"})

http://www.cnblogs.com/wang-jing/p/4567214.html


三、@ModelAttribute获取POST请求的FORM表单数据
提交以下表单

<form method="post" action="user">
    a: <input id="a" type="text"   name="a"/>
    b: <input id="b" type="text"   name="b"/>
    <input type="submit" value="Submit" />
 </form>

Java  Pojo如下

public class Pojo{
        private String a;
        private int b;
    }

Java @Controller如下

@RequestMapping(value = "/user",method = RequestMethod.POST) 
public String processSubmit(@ModelAttribute("pojo") Pojo pojo) {  
    return "helloWorld"; 
}



三、直接用HttpServletRequest获取

例如,访问user?name=chan路径时
@Controller如下

@RequestMapping(value = "/user",method = RequestMethod.GET) 
public String get(HttpServletRequest request, HttpServletResponse response) { 
   System.out.println(request.getParameter("name")); 
    return "helloWorld"; 
}

 




http://www.cnblogs.com/leiOOlei/p/3658147.html










 

相关文章
|
4月前
|
Java 关系型数据库 MySQL
Spring 事务失效场景总结
Spring 事务失效场景总结
61 4
|
28天前
|
JSON 前端开发 Java
SSM:SpringMVC
本文介绍了SpringMVC的依赖配置、请求参数处理、注解开发、JSON处理、拦截器、文件上传下载以及相关注意事项。首先,需要在`pom.xml`中添加必要的依赖,包括Servlet、JSTL、Spring Web MVC等。接着,在`web.xml`中配置DispatcherServlet,并设置Spring MVC的相关配置,如组件扫描、默认Servlet处理器等。然后,通过`@RequestMapping`等注解处理请求参数,使用`@ResponseBody`返回JSON数据。此外,还介绍了如何创建和配置拦截器、文件上传下载的功能,并强调了JSP文件的放置位置,避免404错误。
|
28天前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
19 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
28天前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
21 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
1月前
|
前端开发 Java 应用服务中间件
【Spring】Spring MVC的项目准备和连接建立
【Spring】Spring MVC的项目准备和连接建立
52 2
|
2月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
1月前
|
XML 前端开发 Java
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
本文阐述了Spring、Spring Boot和Spring MVC的关系与区别,指出Spring是一个轻量级、一站式、模块化的应用程序开发框架,Spring MVC是Spring的一个子框架,专注于Web应用和网络接口开发,而Spring Boot则是对Spring的封装,用于简化Spring应用的开发。
97 0
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
|
2月前
|
XML 缓存 前端开发
springMVC02,restful风格,请求转发和重定向
文章介绍了RESTful风格的基本概念和特点,并展示了如何使用SpringMVC实现RESTful风格的请求处理。同时,文章还讨论了SpringMVC中的请求转发和重定向的实现方式,并通过具体代码示例进行了说明。
springMVC02,restful风格,请求转发和重定向
|
3月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
3月前
|
XML JSON 数据库
SpringMVC入门到实战------七、RESTful的详细介绍和使用 具体代码案例分析(一)
这篇文章详细介绍了RESTful的概念、实现方式,以及如何在SpringMVC中使用HiddenHttpMethodFilter来处理PUT和DELETE请求,并通过具体代码案例分析了RESTful的使用。
SpringMVC入门到实战------七、RESTful的详细介绍和使用 具体代码案例分析(一)
下一篇
无影云桌面