日期:2014-05-18  浏览次数:20591 次

STRUTS按钮传参数的问题
JSP中有下面的一段代码:  
  java.util.HashMap   mymap   =   new   java.util.HashMap();
    mymap.put( "materialID ",request.getParameter( "orderID "));
    mymap.put( "matPly ",request.getParameter( "ID "));
    pageContext.setAttribute( "pc ",mymap);  

我想通过一个按钮将上面的哈希表内容 "mymap "提交到一个ACTION,请问该如何做呀?


------解决方案--------------------
可以将这个 mymap 放到 session或者 request 中
------解决方案--------------------
不用吧,放到ActionForm里面就行了,设置个参数
------解决方案--------------------
request.getAttribute( "mymap ")
------解决方案--------------------
up
------解决方案--------------------
可以根据不同的参数读取啊~
------解决方案--------------------
HashMap m=(HashMap)request.getAttribute( "mymap ");
String orderId=(String )m.get( "orderID ");
依此类推。
------解决方案--------------------
俺是菜鸟 刚刚学java 看到问题后 如果是我我会这么做
jsp中写 request.setAttribute( "mymap ",mymap)
然后在ACTION里写
HashMap hm = (HashMap)request.getAttribute( "mymap "); 然后再遍历 原则上怎么放入就怎么拿出来 还有一点 请分清什么时候用 getParameter 什么时候用 getAttribute
1.getAttribute是取得jsp中 用setAttribute設定的attribute
2.parameter得到的是string;attribute得到的是object
3.request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据;request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。即request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。
俺只是个出学者 如有错误 请大虾们指正
------解决方案--------------------
楼上的说的基本上都没问题
request.setAttribute( "mymap ",mymap)要在同一个请求范围才行,既然楼主都提交导ACTION了,肯定不是一个请求范围了,可以改写成session范围

------解决方案--------------------
我还想说点 我觉得还是放到 request 中比较好点 因为它的生命周期短 页面级别的 用完就很快释放 如果用session的话 似乎变得很方便 但是如果用户访问量大的话 系统负荷就大了 速度也就受到了影响 ---初学者 瞎想的 不知道对不对
------解决方案--------------------
你在HashMap时是用pageContext.setAttribute( "pc ",mymap);
这样这个HashMap是放在pageContext中的,你取就也要从pageContext.getAttribute( "mymap "); 中取得。
在request中就取不到了。
------解决方案--------------------
我上面还说错一点
就是
pageContext.getAttribute( "mymap "); 不应该用mymap参数。而是要用 "pc "这个参数了
pageContext.getAttribute( "pc ");
------解决方案--------------------
HashMap m=(HashMap)request.getAttribute( "mymap ");
String orderId=(String )m.get( "orderID ");
先在页面里set其值,然后获得应该是可以的。
------解决方案--------------------
LZ,我感觉你的代码有很多问题,那个
mymap.put( "materialID ",request.getParameter "orderID "));
mymap.put( "matPly ",request.getParameter( "ID "));

你是从哪里得来的,你JSP页面里面根本就没有传参数进来,可能是你还有些代码没有贴出来?