sss130
2010-01-11 19:56
浏览 853
已采纳

struts1 怎么在action中获取页面post的参数

前台传的参数超过4k,method=post
在action中怎样接这个参数

String datas = (String) request.getParameter("datas");时总是4k的,其余部分被截掉了
[b]问题补充:[/b]
页面是5个表拼的所以,一行多个input,目前想到的只是走传参数,
把几十个对象封成json。用vs2008的跟了一下页面,是post
[b]问题补充:[/b]

[img]http://dl.iteye.com/upload/attachment/191616/6db4e8f7-d501-35f6-89b8-f00580508f8a.jpg[/img]

[b]问题补充:[/b]
用js提交的
with (document.getElementsByName("OriginalView")) {
// OriginalView.method = "POST";
OriginalView.action = "/OriginalViewAction.do?methods=updateOrigDates&year=<%=year%>&month=<%=month%>&datas="+JSON.stringify(myMap);
OriginalView.submit();
}
[b]问题补充:[/b]
psot应该可以的,js貌似不能给的value赋值吧

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

11条回答 默认 最新

  • wanghaolovezlq 2010-01-11 20:35
    已采纳

    我晕,你的datas都是以url传参数的方式发送到服务端,那当然不行的

    url的长度是有限制的,不能超过4k吧

    你应该在form里搞一个隐藏域,把JSON.stringify(myMap)得到的值以隐藏域的方式提交到后台

    点赞 打赏 评论
  • wanghaolovezlq 2010-01-11 20:07

    不可能吧,你的一定是get请求才会只能4k,自己仔细查代码

    点赞 打赏 评论
  • CaiHuajiang 2010-01-11 20:10

    如果是form表单上传的话不应该会出现这类问题。
    如果是使用的Ajax控件那么通常要设置XMLHttp
    "content-type","application/x-www-form-urlencoded
    当然,类似jquery等框架都做过封装,通常也不会碰到这类问题

    点赞 打赏 评论
  • OPPPPOP 2010-01-11 20:20

    记得以前用input 提交只能提交一部分数据 后来换成textarea 了

    点赞 打赏 评论
  • OPPPPOP 2010-01-11 20:21

    还有就是request.getparameter 本来就是String 吧 不用转

    点赞 打赏 评论
  • wanghaolovezlq 2010-01-11 20:27

    你是用ajax提交表单的?

    点赞 打赏 评论
  • lovenj 2010-01-11 20:38

    修改你的httpRequest 改为post提交!!!

    点赞 打赏 评论
  • wanghaolovezlq 2010-01-11 20:38

    js当然可以给的value赋值的

    点赞 打赏 评论
  • lovenj 2010-01-11 20:41

    仔细看 OriginalView.action = "/OriginalViewAction.do?methods=updateOrigDates&year=<%=year%>&month=<%=month%>&datas="+JSON.stringify(myMap);

    把 JSON.stringify(myMap) 里的数据存到表单元素里 使用post提交

    点赞 打赏 评论
  • CaiHuajiang 2010-01-11 20:51

    lovewhzlq正解

    点赞 打赏 评论
  • iteye_4873 2010-01-11 22:51

    给隐藏表单域赋值是可以的 试试隐藏表单域~~ 吧

    点赞 打赏 评论

相关推荐 更多相似问题