request.getParameter和SpringMVC后台控制层获取参数的方式
来源:互联网 发布:新浪网络经纪人登录 编辑:程序博客网 时间:2024/06/03 23:41
一、简单的对比
request.getParameter用的比较多,相对熟悉
request.getParameterValues(String name)是获得如checkbox类(名字相同,但值有多个)的数据。 接收数组变量,如checkobx类型
request.getParameter(String name)是获得相应名的数据,如果有重复的名,则返回第一个的值. 接收一般变量,如text类型
例:
1. 三个名字相同的text标签
<input type=”text” name=”test” value=”1” />
<input type=”text” name=”test” value=”2” />
<input type=”text” name=”test” value=”3” />
request.getParameterValues(“test”) —————– [1, 2, 3]
request.getParameter(“test”) —————— 1
${paramValues.test}
${param.test}
2. checkbox
<input type=”checkbox” name=”habit” value=”read”>看书
<input type=”checkbox” name=”habit” value=”movie”>电影
<input type=”checkbox” name=”habit” value=”game”>游戏
request.getParameterValues(“habit”)
二、与此相关的话题——隐含对象
1. JSP隐含对象(Implicit Object)
所谓隐含对象,是指当编写jsp网页时,不必做任何声明就可以直接使用的对象。 JSP2.0定义了九个隐含对象
request response pageContext session application out conifg page exception
这里只提一下request 和 response 两个对象
request 对象表示客户端请求的内容,比如我们从request中取得了用户输入的内容,实现了javax.servlet.http.HttpServletRequest接口
response对象表示响应客户端的结果。
上面我们使用了request的两个方法getParameter 和 getParameterValues,其实request还有其他几个比较重要的方法,这里只涉及几个获取请求参数的方法
String getParameter(String name) 取得name的参数值
String[] getParameterValues(String name) 取得所有name的参数值
Enumeration getParameterNames() 取得所有的参数名称
Map<String, String[]> getParameterMap() 取得request的所有参数的一个映射
//
- Returns a java.util.Map of the parameters of this request. Request parameters are extra information sent with the request. For HTTP servlets, parameters are contained in the query string or posted form data.
- Returns:
- an immutable java.util.Map containing parameter names as keys and parameter values as map values. The keys in the parameter map are of type String. The values in the parameter map are of type String array.
//
response等其他几个隐含对象也有非常重要的身份,有机会专门整理一下,宣扬一下它们的显赫地位。
2. EL隐含对象
EL即Experssion Language,自JSP2.0后正式成为JSP的标准规范之一,支持Servlet2.4/JSP2.0的Container也就相应的支持EL语法。
一个常见的形式如,<c:out value=”${ 3 + 7 * 4}” />
EL的隐藏对象有11个 PageContext PageScope RequestScope sessionScope applicationScope
param paramValues header headerValues cookie initParam
其中param 和 paramValues即对相应ServletRequest.getParameter(String name)和ServletRequest.getParameterValues(String name)
- SpringMVC后台控制层获取参数的方式
转载于:http://825635381.iteye.com/blog/2196911
在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter(“name”),另外一种是用注解@RequestParam直接获取。这里主要讲这个注解
一、基本使用,获取提交的参数
后端代码:- @RequestMapping(“testRequestParam”)
- public String filesUpload(@RequestParam String inputStr, HttpServletRequest request) {
- System.out.println(inputStr);
- int inputInt = Integer.valueOf(request.getParameter(“inputInt”));
- System.out.println(inputInt);
- // ……省略
- return “index”;
- }
@RequestMapping("testRequestParam") public String filesUpload(@RequestParam String inputStr, HttpServletRequest request) { System.out.println(inputStr);
}int inputInt = Integer.valueOf(request.getParameter("inputInt"));System.out.println(inputInt);// ......省略return "index";
前端代码:- <form action=“/gadget/testRequestParam” method=“post”>
- 参数inputStr:<input type=“text” name=“inputStr”>
- 参数intputInt:<input type=“text” name=“inputInt”>
- </form>
<form action="/gadget/testRequestParam" method="post"> 参数inputStr:<input type="text" name="inputStr"> 参数intputInt:<input type="text" name="inputInt"> </form>
前端界面:
执行结果:
test1
123
可以看到spring会自动根据参数名字封装进入,我们可以直接拿这个参数名来用
二、各种异常情况处理
1、可以对传入参数指定参数名- @RequestParam String inputStr
- // 下面的对传入参数指定为aa,如果前端不传aa参数名,会报错
- @RequestParam(value=“aa”) String inputStr
@RequestParam String inputStr// 下面的对传入参数指定为aa,如果前端不传aa参数名,会报错@RequestParam(value="aa") String inputStr
错误信息:
HTTP Status 400 - Required String parameter ‘aa’ is not present
2、可以通过required=false或者true来要求@RequestParam配置的前端参数是否一定要传- // required=false表示不传的话,会给参数赋值为null,required=true就是必须要有
- @RequestMapping(“testRequestParam”)
- public String filesUpload(@RequestParam(value=“aa”, required=true) String inputStr, HttpServletRequest request)
// required=false表示不传的话,会给参数赋值为null,required=true就是必须要有@RequestMapping("testRequestParam") public String filesUpload(@RequestParam(value="aa", required=true) String inputStr, HttpServletRequest request)
3、如果用@RequestMapping注解的参数是int基本类型,但是required=false,这时如果不传参数值会报错,因为不传值,会赋值为null给int,这个不可以- @RequestMapping(“testRequestParam”)
- public String filesUpload(@RequestParam(value=“aa”, required=true) String inputStr,
- @RequestParam(value=“inputInt”, required=false) int inputInt
- ,HttpServletRequest request) {
- // ……省略
- return “index”;
- }
@RequestMapping("testRequestParam") public String filesUpload(@RequestParam(value="aa", required=true) String inputStr, @RequestParam(value="inputInt", required=false) int inputInt ,HttpServletRequest request) {
}// ......省略return "index";
解决方法:
“Consider declaring it as object wrapper for the corresponding primitive type.”建议使用包装类型代替基本类型,如使用“Integer”代替“int”
- request.getParameter和SpringMVC后台控制层获取参数的方式
- Spring MVC后台控制层获取参数方式详解
- ajax post 后台request.getParameter获取不到参数
- jquery通过ajax-json访问java后台传递参数,通过request.getParameter获取不到参数的说明
- jquery通过ajax-json访问java后台传递参数,通过request.getParameter获取不到参数的说明
- jquery通过ajax-json访问java后台传递参数,通过request.getParameter获取不到参数的说明
- SpringMVC后台获取前台参数的几种方式
- java表现层框架struts2和SpringMVC获取页面参数的方式
- request.getParameter("name")获取参数为null和""空字符串的区别
- request.getParameter 获取不到页面的参数的问题
- jsp的request.getParameter获取不到表单参数
- 对 request.getParameter("参数名字") 获取的值判空报空指针异常
- 用request.getParameter获取值得到乱码的解决方式
- springMVC 中几种获取request和response的方式
- springMVC 中几种获取request和response的方式
- springMVC 中几种获取request和response的方式
- springMVC 中几种获取request和response的方式
- springMVC 中几种获取request和response的方式
- jsp中的EL表达式的用法
- python排列最大数
- 中国队赢了!!
- HTTPS入门
- 把字符串转换成整数
- request.getParameter和SpringMVC后台控制层获取参数的方式
- ubuntu国内镜像
- 训练总结 8.31
- 定时任务at与循环任务crontab
- java画布生成验证码2.0与第三方代码生成
- 面试提问
- 从0到n-1中随机等概率输出m个不重复的数
- 【1】【python】算术运算报错can't multiply sequence by non-int of type 'float'
- 【hpu 1016 985的0-1串难题 [二分、尺取]】