Spring3 MVC请求参数获取的几种场景
访问/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
Spring3 MVC请求参数获取的几种场景的更多相关文章
- Spring3 MVC请求参数获取的几种方法
Spring3 MVC请求参数获取的几种方法 一. 通过@PathVariabl获取路径中的参数 @RequestMapping(value="user/{id}/{name}&q ...
- Spring3 MVC请求参数获取的几种方法[转]
Spring3 MVC请求参数获取的几种方法 Spring3 MVC请求参数获取的几种方法 一. 通过@PathVariabl获取路径中的参数 @RequestMapping(value=& ...
- Spring3 MVC请求参数获取的几种方法[转载]
http://www.cnblogs.com/leiOOlei/p/3658147.html 一. 通过@PathVariabl获取路径中的参数 @RequestMapping(value= ...
- Spring MVC 的请求参数获取的几种方法
通过@PathVariabl注解获取路径中传递参数 @RequestMapping(value = "/{id}/{str}") public ModelAndView hello ...
- springmvc请求参数获取的几种方法
1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交. /** * 1.直接把表单的参数写在Controller相应的方法的形参中 * @pa ...
- jmeter脚本中请求参数获取的几种方式
a.从数据库获取: 譬如接口请求参数中id的值,我需要从数据库获取,如下设置: 先设置jdbc connection configuration,然后设置JDBC b.从CSV获取: 获取CSV文件 ...
- Spring MVC请求参数绑定 自定义类型转化 和获取原声带额servlet request response信息
首先还在我们的框架的基础上建立文件 在domian下建立Account实体类 import org.springframework.stereotype.Controller; import org. ...
- springmvc请求参数获取(自动绑定)的几种方法
1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交. /** * 1.直接把表单的参数写在Controller相应的方法的形参中 * @pa ...
- SpringBoot 基于web应用开发(请求参数获取,静态资源,webjars)
SpringBoot 基于web应用开发 一.Lombok使用 1.导入依赖库 <dependency> <groupId>org.projectlombok</g ...
随机推荐
- 绝杀600元以下智能手机的夏新小V二代-专栏-速途网
绝杀600元以下智能手机的夏新小V二代-专栏-速途网 绝杀600元以下智能手机的夏新小V二代
- Application to find the maximum temperature in the weather dataset
import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop. ...
- hdu1114(完全背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 分析:很裸的一道完全背包题,只是这里求装满背包后使得价值最少,只需初始化数组dp为inf:dp[ ...
- sys_refcursor的使用方法实例
--创建过程,參数为sys_refcursor,为out型 create or replace procedure aabbsys_refcursor(o out sys_refcursor) is ...
- NOJ1184 失落的邮票 哈希表
意甲冠军 我们共收集N邮票.现在失去了2张,剩下N-2张-..原集邮收集了所有对.因此,找到什么两枚邮票是一个.它们输出. (确定缺少邮票是不一样的) 思路 由于编号比較大,能够用hash表压缩成数组 ...
- Django Form Media 阅读笔记
---恢复内容开始--- Form Media Rendering an attractive and easy-to-use Web form requires more than just HTM ...
- iText操作word文档总结
操作word文档的工具有很多,除了iText之外还有POI,但是POI擅长的功能是操作excel,虽然也可以操作word,但是能力有限,而且还有很多的bug,技术并不成熟,下面就重点介绍一种操作wor ...
- PHP实现冒泡排序、双向冒泡排序算法
冒泡排序(Bubble Sort),是一种较简单的.稳定的排序算法.冒泡排序算法步骤:比较相邻的元素,如果第一个比第二个大,就交换他们两个的位置:对每对相邻的元素执行同样的操作,这样一趟下来,最后的元 ...
- Android于fragment_main.xml文件问题组件收购
package com.dhy.phonedial; import android.app.Activity; import android.app.Fragment; import android. ...
- [置顶] JUnit入门教程(二)
一:介绍 接着上次的课程,今天我们学习JUnit4的新特性 assertThat()方法,这种方式和其余的assert方法比起来,更加接进英语. 二:分析API API中的例子: 参数 T Actua ...