- 浏览: 768855 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (256)
- ssh (18)
- webservice (8)
- java基础 (38)
- j2EE方方面面 (17)
- 随意涂鸭!呵呵 (2)
- 数据库 (22)
- work (10)
- XML与XML解析 (9)
- 测试 (2)
- sso (1)
- ldap (6)
- java 模板技术 (4)
- 版本管理 (1)
- 每日小点滴 (26)
- javascript (26)
- Jakarta Commons (2)
- css (6)
- 设计 (3)
- Eclipse插件开发 (3)
- BAP (3)
- web控件 (2)
- java加密解密 (4)
- 调优 (6)
- 界面技术 (3)
- java多线程 (6)
- 互联网 (2)
- 日志管理 (4)
- java调度 (3)
- rest (0)
- Python (2)
- mobile (2)
- 2016的故事 (4)
- Docker (1)
- NOSQL_Hadoop (0)
最新评论
-
promiseloney:
这个女程序员厉害了。。。
JVM调优:GC 参数 -
zxjlwt:
可以通过WebService上传一个文件吗?素人派http:/ ...
webservice传送XML大小估算 -
liaoshaoyang:
写的不错嘛 可以做参考
权限管理设计一 -
aaaaaaaaabaas:
谢谢,对我有帮助
Apache Commons Configuration使用入门 -
Jack_Wilshere:
com.smartdot.pdm.business.corp. ...
java导出txt
在struts1的action中, status参数通过param的方式传到action中,即以下代码
document.form1.action = '${pageContext.request.contextPath}/crs/meetingAction.do?method=editSaveMeeting&status='+status;
在action中操作完status参数后,需要转到另一个action,但是需要改变status的值,情理之中,想到下面的方法,
request.getParameterMap().remove("status");
经测试在,转到下一个action中的,status值还存在。
在网上搜索到以下文章,
近做项目,用到request.getParameterMap();在对返回的Map进行操作的时候产生异常 Cannot find message associated with key parameterMap.locked, 网上找了一下解决方法,记录一下,希望对产生同样问题的朋友有所帮助,如下: Map requestParams=request.getParameterMap(); ...... requestParams.remove("key"); 运行时会报错误: Cannot find message associated with key parameterMap.locked at org.apache.catalina.util.ParameterMap.remove(ParameterMap.java:204) 从输出的错误信息发现,原来request.getParameterMap();返回的不是一般的Map,而是org.apache.catalina.util.ParameterMap! 反编译ParameterMap,发现其继承自HashMap: public final class ParameterMap extends HashMap 其中有一个加锁的方法,问题就出在这里了: public void setLocked(boolean locked) { this.locked = locked; } 其他所有修改内容的方法,都会判断是否上锁。如果处于锁定状态,就会抛出异常,比如最常用的put方法: public Object put(Object key, Object value) { if(locked) throw new IllegalStateException(sm.getString("parameterMap.locked")); else return super.put(key, value); } 原来如此! 于是,从Tomcat下拷来了catalina.jar,代码写成 ParameterMap requestParams=(ParameterMap)request.getParameterMap(); requestParams.setLocked(false); requestParams.remove("key"); ...... 运行时还是报类型转换错误:不能从org.apache.catalina.util.ParameterMap转换为org.apache.catalina.util.ParameterMap 用instanceof判断,返回的也是false,有点晕,呵呵 最后,只好用反射来搞定了: Method method=requestParams.getClass().getMethod("setLocked",new Class[]{boolean.class}); method.invoke(requestParams,new Object[]{new Boolean(false)}); OK!运行通过!锁定已经接触,可以像操作普通的Map一样,修改request的请求参数了! 文章出处:http://www.diybl.com/course/3_program/java/javashl/2008321/105928.html
虽然已可以解决,但是用了反射机制,感觉比较麻烦,
于是另寻解决办法。
我们公司用到了Jakarta Commons 组件,大家可以在网上查一下,很简单实用,
其中有个 import org.apache.commons.beanutils.DynaBean;类
在Action中,可以用以下代码:
public ActionForward meetingList(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { DynaBean bean = (DynaBean) form; bean.set("status", "0"); }
将form中强制转换为DynaBean类,然后直接用set方法就可以把 request.getParameterMap()中的key删掉!
评论
4 楼
aaronhugo
2011-08-16
这段时间突然遇到,总算有办法了。
3 楼
jessdy
2009-09-03
真是不择手段啊
2 楼
litchi
2009-04-09
返回的 parameterMap是不可变的,因此网上流传广泛的这个版本实际上是没法做到修改parameter的。。。
1 楼
litchi
2009-04-09
正好今天也碰到这个问题,谢谢啊
发表评论
-
Spring boot junit test
2020-06-16 16:06 3171. 下面的AgreementService 引用了 Fei ... -
Istio
2020-06-15 09:04 237容器编排平台使 用了实例scaling来对流量进行管理。而 ... -
Spring boot junit test
2020-06-14 11:26 228Refer to: https://www.baeldu ... -
Gradle task 接收参数
2020-06-09 09:55 1384//1. 执行gradle task 时传递参数 ./g ... -
Git
2018-07-29 11:49 435一、 跟踪分支与远程 ... -
企业级API网关
2018-07-26 21:17 590API网关就是用来代替控制器层 Controller,使用A ... -
分步式事务
2018-07-25 21:46 595分布式事务场景: 不同系统,不同数据库 例如,外卖点单后 ... -
转载:IBM红米连接wifi的方法
2014-05-05 16:47 1459转载自:http://bbs.xia ... -
English interview
2013-10-14 14:42 980Good morning ! It is really my ... -
需要测试一下的问题
2013-04-26 10:15 0<update id="updateSit ... -
int i 引出JVM故事
2013-02-27 18:47 673public class TestDuanqf { ... -
Win7快速启动栏设置及防止消失方法
2011-03-07 10:08 2214转载自:http://blog.s ... -
渐老的愤青
2010-06-11 10:26 1511我发现自己老了,因为睡得太晚、睡眠不足身体各项机能都下降,脾气 ... -
用DIV做带横向滚动条的多选框
2010-05-10 11:36 3411<!DOCTYPE HTML PUBLIC " ... -
ibatis 缓存 cacheModel
2009-07-30 13:40 1157<cacheModel type="LRU& ... -
PropertySet 学习一
2009-05-21 16:01 2805http://www.opensymphony.com/pro ... -
java 路径的故事
2009-05-14 09:44 1395JSP中:${pageContext.request.cont ... -
发送激活码确认
2009-04-23 16:44 2863一、需求 最近做某项目的用户管理( ... -
cookie介绍
2009-03-16 11:30 4702由于要做一个简单的SSO,所以学习了cookie部分,原来感觉 ... -
网络中工作组与域的解释
2009-03-16 10:30 1443为什么要组建局域网 ...
相关推荐
getParameter()获得的是String类型,多个参数名相同默认获取第一个getParameterValues()获得的是数组,多个参数名相同时,值在同
作业getParameterMap()的显示
可以动态修改表达提交参数,使之修改request.getParameterMap(),不报异常。
今天跟大家分享几个解决java Web开发中,request.getParameter()获取URL中文参数乱码的解决办法,需要的朋友可以参考下
The doFilter method of the Filter is called by the container each time a request/response pair is passed through the chain due to a client request for a resource at the end of the chain. doGet...
请求对象 request 和响应对象 response(5)_request 的 getParameterMap 方法详解
public class ObjectUtil { //public static Object request2Obj(HttpServletRequest request, Class clazz) { public static Object request2Obj(Request request, ... return request.getParameterMap(); } }
Map properties = request.getParameterMap(); Map returnMap = new HashMap(); Iterator entries = properties.entrySet().iterator(); Entry entry; String name = ""; String value = ""; while ...
window.open 函数的操作 取出showModalDialog中传过来的数据对象 request.getParameterMap()相关的操作实例
对于某些Java EE服务器,不支持HttpServlet Request调用getParameterMap()方法,此时可以设置该属性值为true来解决该问题。该属性的默认值是false。 对于WebLogic、Orion和OC4J服务器,通常应该设置该属性为true。 ...
阿里云java短信验证码源码 黑马旅游网(web阶段...request.getParameterMap(); // 2.封装到User实体 new User(); // 3.调用service注册 userService.register(user); // 4.判断 if (getSuccess()) { // 注册成功 send
mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in action之二以接口的方式编程 mybatis实战教程mybatis in action之三实现数据的增删改查 mybatis实战教程mybatis in action之四实现...
对于某些Java EE服务器,不支持HttpServlet Request调用getParameterMap()方法,此时可以设置该属性值为true来解决该问题.该属性的默认值是false.对于 WebLogic、Orion和OC4J服务器,通常应该设置该属性为true. struts....
j2ee利用getParameter()、getParameterValues()、getParameterMap()和getParameerNames()这些方法获得表单的传值!
修改的基础依赖于潇湘jsp多文件上传组件2.1。 由于最近几天正好用到上传组件,所以在网上...另外没有getParameterMap()方法。所以修改完善了这两个功能,其他没变。附件中有使用说明和demo,请大家根据实际情况使用。