前台传的参数超过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赋值吧
我晕,你的datas都是以url传参数的方式发送到服务端,那当然不行的
url的长度是有限制的,不能超过4k吧
你应该在form里搞一个隐藏域,把JSON.stringify(myMap)得到的值以隐藏域的方式提交到后台
不可能吧,你的一定是get请求才会只能4k,自己仔细查代码
如果是form表单上传的话不应该会出现这类问题。
如果是使用的Ajax控件那么通常要设置XMLHttp
"content-type","application/x-www-form-urlencoded
当然,类似jquery等框架都做过封装,通常也不会碰到这类问题
记得以前用input 提交只能提交一部分数据 后来换成textarea 了
还有就是request.getparameter 本来就是String 吧 不用转
你是用ajax提交表单的?
修改你的httpRequest 改为post提交!!!
js当然可以给的value赋值的
仔细看 OriginalView.action = "/OriginalViewAction.do?methods=updateOrigDates&year=<%=year%>&month=<%=month%>&datas="+JSON.stringify(myMap);
把 JSON.stringify(myMap) 里的数据存到表单元素里 使用post提交
lovewhzlq正解
给隐藏表单域赋值是可以的 试试隐藏表单域~~ 吧