如何把JSP页面的URL参数传到JAVA后台去???

emit 2009-03-06 12:46:00
JSP页面:
<script type="text/javascript">
<!--function run(){
var strTxt1 = document.forms[0].txt1.value;//document.getElementsByName("txt1").value;
var strTxt2 = document.getElementsByName("txt2");
document.forms[0].action="user.do?txt1=strTxt1&txt2=strTxt2";
document.forms[0].submit();

}
//-->
</script>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<form action="" method = "post" onsubmit="return false">
<input type="text" name ="txt1">
<input type="text" name ="txt2">
<input type="button" value ="submit" onclick="run()">

</form>
</body>
</html>


问题:
document.forms[0].action="user.do?txt1=strTxt1&txt2=strTxt2";
这种写法在JAVA里执行 String txt1 = (String)request.getAttribute("txt1");
总是Null,怎么去jsp表单里txt1和txt2的值啊???
PS:用Struts的ActionForm这种做法当然能解决,我现在就是想用URL这种方法来取这些参数,请大侠们赐教,不胜感激
...全文
1377 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
emit 2009-03-07
  • 打赏
  • 举报
回复
谢谢大家的指导,谢谢yyandlh给我的纠正,从你那儿有学到东西了也感谢mirzlm给我点通了,再回头看大家回的贴都明白了,谢谢,结贴了,呵呵
lzheng2001 2009-03-06
  • 打赏
  • 举报
回复
应该用 (String)request.getParameter("txt1"); 来取值, 这样就可以了.
老紫竹 2009-03-06
  • 打赏
  • 举报
回复
呵呵,幸好我没回答,大家都正确!
dengjun55 2009-03-06
  • 打赏
  • 举报
回复
楼主要仔细研究下java的作用域。
ltfreedom 2009-03-06
  • 打赏
  • 举报
回复
学到了点东西,很好,很强大
mirzlm 2009-03-06
  • 打赏
  • 举报
回复
试过了,以上方法都可以
Jacky_Zhu_1983 2009-03-06
  • 打赏
  • 举报
回复
首先
document.forms[0].action="user.do?txt1=strTxt1&txt2=strTxt2";
应该改成
document.forms[0].action="user.do?txt1="+strTxt1+"&txt2="+strTxt2;

取的时候
String txt1 =request.getParameter("txt1");
注意如果是中文的话请转码,否则会出现乱码!
比如txt1 = new String(txt1.getBytes("ISO-8859-1"), "GBK");

ganglong99 2009-03-06
  • 打赏
  • 举报
回复
大哥,方法用错了!
应该是request.getParameter("txt1");
不管是post还是get方法提交的,都采用这个方法获得请求参数。
建议还是先看看JSP和servlet的基础知识吧。
Landor2004 2009-03-06
  • 打赏
  • 举报
回复
String txt1 =request.getParameter("txt1"); //getParameter返回的是字符串,无需强制转换
fanyuanwaifdl 2009-03-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lzheng2001 的回复:]
应该用 (String)request.getParameter("txt1"); 来取值, 这样就可以了.
[/Quote]·
leicesc 2009-03-06
  • 打赏
  • 举报
回复
直接String txt1=request.getParameter("txt1");从表单拿到的数据都是String类型的,不用强制类型转换
gzg2008 2009-03-06
  • 打赏
  • 举报
回复
问题应该在于form的method=“post”
yyandlh 2009-03-06
  • 打赏
  • 举报
回复
这个很基础。楼主还很欠缺呀。request.getParameter("txt1"); 这个get方法返回的是String.
同时纠正你一点你用getElementByNames获得是一个对象集合。你要想传txt2的值的话得getElementByNames("txt2")[0].value
luojihaidao 2009-03-06
  • 打赏
  • 举报
回复
String txt1 = (String)request.getAttribute("txt1"); ===》String txt1 = request.getParameter("txt1");
gxsted 2009-03-06
  • 打赏
  • 举报
回复
request.getParameter("txt1")
request.getParameter("txt2")
gxsted 2009-03-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 emit 的帖子:]
JSP页面:
<script type="text/javascript">
<!--function run(){
var strTxt1 = document.forms[0].txt1.value;//document.getElementsByName("txt1").value;
var strTxt2 = document.getElementsByName("txt2");
document.forms[0].action="user.do?txt1=strTxt1&txt2=strTxt2";
document.forms[0].submit();

}
//-->
</script>

<html>
<head>
<meta http-equiv="Content-Type" content="text/htm…
[/Quote]
mirzlm 2009-03-06
  • 打赏
  • 举报
回复
解决方法,你不需要在.do后面加参数,只要你的<form>里有
<input type="text" name ="txt1">
<input type="text" name ="txt2">
就可以了后台,用
request.getParameter("txt1")
request.getParameter("txt2")
来取得数据,当然在struts的form里,不需要定义这些变量
mirzlm 2009-03-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 mirzlm 的回复:]
试过了,以上方法都可以
[/Quote]

sorry 我收回上午说的话,上午试的时候没注意

忘记把它删除了

<div style="visibility: hidden;">
<input type="text" name="intRowCount" value="<%=intRowCount %>">
</div>

经过我的实践,发现以abc.do?intRowCount=<%=10000 %>的方式,是不能在后台
以String strRowCount=request.getParameter("intRowCount");的方式取得这个值的
wurb_travelsky 2009-03-06
  • 打赏
  • 举报
回复
表格以POST方式提交的话,参数不是URL后面的,应该是在请求体(REQUEST)当中,直接拿URL的方法应该是取不出来的吧?仅供参考。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧