关于request.getParameter(java.lang.String name)
来源:互联网 发布:人工智能假肢技术 编辑:程序博客网 时间:2024/06/05 20:30
//前段时间比较忙,好久不写日志了。总结个基础的问题,在Grails中写java代码果然会遭报应,出错了经常没提示...
问题重现:为了便于处理分页,在前端页面添加了一个参数,定义如下:
<input id="pagination" type="hidden" value="0" />
【1】Append数据后,自动更改分页参数:
$('#pagination').val($('#pagination').val() + 10);
通过Ajax传参给后端,进行处理,参数定义如下:
"pagination" : (typeof ($('#pagination')) == "undefined") ? 0:$('#pagination').val(),
【2】Controller中如此处理此参数:
Intege pagination = request.getParameter("pagination");// input: 0
经验证,上述代码均有问题...
【1】这段的思路是页面每次追加新数据后,自动增加分页参数的值...可是javascript会把这个$('#pagination').val()当成字符串去加...于是第二页可能出现这样的结果:
010
...好吧,前端陷阱就是不少...如下解决方案:
$('#pagination').val(parseInt($('#pagination').val()) + 10);$('#pagination').val(Number($('#pagination').val()) + 10);
【2】因为servlet里处理页码的方法的参数是整形,所以这里直接用Integer接收了。
print("pagination:" + pagination);// pagination:48
直接输出ASCII值 ...不是我想要的...用一个"-48"? 超出0-9后就会报错的...
找原因...
http://download.oracle.com/otn-pub/jcp/servlet-3_1-fr-spec/servlet-3_1-final.pdf
http://tomcat.apache.org/tomcat-7.0-doc/servletapi/
参见Servlet规范及Tomcat的实现,原来这个request.getParameter()方法返回的是String!
至于为嘛返回48?试试...
System.out.println((int) '1');//49 System.out.println((int) '11');//Invalid character constant System.out.println((Integer) "1");//Cannot cast from String to Integer System.out.println((Integer) "11");//Cannot cast from String to Integer
按理说这个"1"应该报错啊,不应该显示49...参考Tomcat 实现理应是个String的"1"吧,应该编译就有问题啊?没看到哪里转换为'1'...此处有个疑问...
public String getParameter(String name ) { handleQueryParameters(); ArrayList<String> values = paramHashValues.get(name); if (values != null) { if(values.size() == 0) { return ""; } return values.get(0); } else { return null; } }
____________分割线_ 20131121补充_____________________
今天想起那是个Groovy的Controller,测试下,终于明白为嘛1变变成49了,跟容器无关。
groovy> class HelloWorld groovy> { groovy> static void main(String[] args) { groovy> int a = 'a'; groovy> int b ='1'; groovy> int c = "1"; groovy> println a; groovy> println b; groovy> println c; groovy> } groovy> } 974949
- 关于request.getParameter(java.lang.String name)
- request.getParameter()与getParameter(String name)对比
- 【java】关于request.getParameter("name");得到值为"??????"的问题
- string name = request.getParameter("name"); JAVA上传图片文件name返回空null解决办法
- request.getParameter("name")
- request.getParameter("Name")
- 关于出现Intellij idea jsp web cannot resolve method getParameter(java.lang.String)
- 关于spring java.lang.IllegalArgumentException: Name for argument type [java.lang.String] 的错误
- 关于spring java.lang.IllegalArgumentException: Name for argument type [java.lang.String] 的错误
- java--request getParameter
- 关于request.getParameter中文乱码
- java.lang.NoSuchMethodError: javax.persistence.UniqueConstraint.name()Ljava/lang/String
- request.getparameter(string str)返回值类型
- Property 'name' not found on type java.lang.String
- webelement中的方法getText()和getAttribute(java.lang.String name)
- Name for argument type [java.lang.String] not available
- request的getParameter("name")、getParameterValues("arrName")、getParameterMap()用法详解
- JSP关于request.getParameter("");中文乱码问题
- 最小生成树算法
- javascript中的while循环
- 出错提示:“Could not flush the DNS Resolver Cache: 执行期间,函数出了问题”的解决方法
- 给iphone应用Default.png添加效果
- 解决cxf中list中对象为1个时返回json串问题的配置文件
- 关于request.getParameter(java.lang.String name)
- HTTP状态码说明
- Linux下NFS(网络文件系统)的建立与配置方法
- Android中获取应用程序(包)的信息-----PackageManager的使用
- Sql server 2005带来的分页便利
- javascript中的for循环
- vg的扩展和删除
- C++ string转char*
- 未来的移动互联网将如何发展