◆◆JSP:表单提交值的问题,急!!!在线等◆◆

arrowy 2004-04-05 10:54:18
我做了一个表单提交:

一个文本框(name = searchkey,一个下拉菜单(name = searchtype)

在JSP页,我做了一个验证处理:
String searchkey = request.getParameter("searchkey");
String searchtype = request.getParameter("searchtype");
//-------------验证一:判断文本框是否为空-----------------
if (searchkey == null)
{
out.print("searchkey is null");
}
else
{
out.print(searchkey);
searchkey = "ok";
}
//-------------验证二,判断下拉菜单的值是否为指定值------------
if (searchtype =="all")
{
searchtype = "";
}
else
{
searchtype = searchtype;
out.print(searchtype);
}

...

以上两个验证都不行,不管我是判断它们==null,还是=="",反正都是执行else后的语句,全然不管if 了,我都不知道是什么问题,请高手们救急!!!
...全文
41 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
bobZ 2004-04-06
  • 打赏
  • 举报
回复
基本数据类型如int可以用==来判断,而对象用==判断的只是内存地址,用它的方法equals才是判断内容。
lubin59 2004-04-06
  • 打赏
  • 举报
回复
好象==判断的是地址是否相同,不是判断内容吧
arrowy 2004-04-06
  • 打赏
  • 举报
回复
谢谢各位,主要就是用了.equals("XXX")的方法,但我想了解一下,
取一个从表单传递过来的单个值,不是有许多的同名的property的话:
String strWord = request.getParameter("XXX");后,为什么不能用if (strWord =="XXX")
来进行判断呢,我是刚入门的,尤其对那些函数知之甚少,我用ASP的时候,当然那玩意儿什么都不管,无论是String or int,就这么比,我想,语言虽然不同,大致的方法应该是一样的啊??

就此一问,望解救,马上要结了
arrowy 2004-04-06
  • 打赏
  • 举报
回复
收到,JSP,靠,唉,规矩真多,有点想ASP了
yetao0380 2004-04-06
  • 打赏
  • 举报
回复
我一般也这么写
String searchkey = request.getParameter("searchkey");
String searchtype =request.getParameter("searchtype");
//在这里最好不要进行汉字处理了什么的

if (searchkey == null || searchkey.equals("")) {
}

字符串的比较应该用equals或者compareTo
BlueFox2008 2004-04-05
  • 打赏
  • 举报
回复
我习惯这么写:
String searchkey = (String)request.getParameter("searchkey");
String searchtype = (String)request.getParameter("searchtype");
然后:
if (searchkey == null || searchkey.equals("")) {
}
arrowy 2004-04-05
  • 打赏
  • 举报
回复
哦,现在是我不能在公司试,只能回家再试,就按各位的方法,所以现在,我想大家能告诉我一些传递参数的思路和处理上的注意问题,可能我更喜欢“理论”,可以不写代码,THANK
monkeyhjl 2004-04-05
  • 打赏
  • 举报
回复
试试这样写:
if (searchkey == null || searchkey.equals(""))
arrowy 2004-04-05
  • 打赏
  • 举报
回复
equals也不行,它总是不执行if()程序段,而只执行else
但我不知道是什么地方传值错误,让它总是忽略if(),比如我在表单中不填写searchkey这个文本框然后提交,结果还是

out.print(searchkey);
searchkey = "ok";
而不是:
out.print("searchkey is null");

我现在只是想明白里面的问题所在,
象表单传值应该注意什么?
对于传递过来的值是什么形式的,应如何处理?
对不同的表单对象的值的处理是否是一样的radio,text,select,checkbox?
为什么不能直接判断它是否==null?(=="")
谢谢各位了!!!
monkeyhjl 2004-04-05
  • 打赏
  • 举报
回复
用equals进行比较。
arrowy 2004-04-05
  • 打赏
  • 举报
回复
问题是我只传了一个值过去,searchkey = request.getParameter("searchkey");
然后再if (searchkey==null),这里都过不去,真的很郁闷,你说正常的是不是这样的?我看别人的例子也是,但就是判断不行,或者是if (searchkey =="xxx"),我不知道这个东西传递值是以什么形式来传递的
wzrlover 2004-04-05
  • 打赏
  • 举报
回复
request.getParameterValues看名称就知道是取得请求参数的值的意思,
但这个参数有可能有很多个值,如searchkey="aaa"&searchkey="bbb"&.....
所以要用数组可以包含指定参数的所有值
arrowy 2004-04-05
  • 打赏
  • 举报
回复
哦,为什么要这样呢?我以前都用前面的方法,很多书的例子也是那样,小弟刚入门,能说说这里面的问题吗
wzrlover 2004-04-05
  • 打赏
  • 举报
回复
String searchkey = request.getParameter("searchkey");
String searchtype = request.getParameter("searchtype");

改为
String[] searchkey=request.getParameterValues("searchkey");
String[] searchtype = request.getParameterValues("searchtype");

if (searchkey==null){
}
windhj 2004-04-05
  • 打赏
  • 举报
回复
searchtype =="all"改为searchtype.equals("all")
==""改为.equals("")
应该就OK了!
qudong078 2004-04-05
  • 打赏
  • 举报
回复
楼上的,request.getParameter("searchkey")返回的就是String类型,你再强制转化岂不是画蛇添足。如果有许多的同名的property,要用request.getParameterValues("searchkey")(比如说checkbox,mutipute的select等),如果其他的情况我建议用不同name的input来实现
这样的话用request.getParameter("xxx")就可以了

81,092

社区成员

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

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