结果在提交前显示null,提交后没有任何问题。部分代码如下:
String sql1="select * from khxx;";
if(new String(request.getParameter("search").getBytes("ISO-8859-1"),"gb2312")!=null){
sql1="select * from khxx where KHDWMC like '%"+new String(request.getParameter("search").getBytes("ISO-8859-1"),"gb2312")+"%';";
}
ConnectionDB conn = new ConnectionDB();
Connection con = conn.connect();
Statement stmt = con.createStatement
ResultSet rs= stmt.executeQuery(sql1);
。。。。。。。《此处略》
jsp 实现搜索功能时,在未提交关键字前或者为空时,显示所有的结果,form值提交到本页处理。
答案:3 悬赏:20 手机版
解决时间 2021-01-03 17:39
- 提问者网友:niaiwoma
- 2021-01-03 12:38
最佳答案
- 五星知识达人网友:不如潦草
- 2021-01-03 12:45
问题其实很简单,当equest.getParameter("search")为空时,request.getParameter("search").getBytes("ISO-8859-1")语句会报错的,所以只需将判定条件改为if(request.getParameter("search")!=null){
sql1="select * from khxx where KHDWMC like '%"+new String(request.getParameter("search").getBytes("ISO-8859-1"),"gb2312")+"%';";
}这样就可以了
sql1="select * from khxx where KHDWMC like '%"+new String(request.getParameter("search").getBytes("ISO-8859-1"),"gb2312")+"%';";
}这样就可以了
全部回答
- 1楼网友:鱼芗
- 2021-01-03 14:00
你只需要在写一个查询全部的Sql语句就可以了,在SQL语句那里做个判段,当f(new String(request.getParameter("search").getBytes("ISO-8859-1"),"gb2312")!=null)时,你执行你的s模糊查询语句,当他不为空时,你就执行查询全部的SQL语句。这样也就可以在初始的时候显示全部的信息。
- 2楼网友:青灯有味
- 2021-01-03 13:02
if(new String(request.getParameter("search").getBytes("ISO-8859-1"),"gb2312")!=null){
sql1="select * from khxx where KHDWMC like '%"+new String(request.getParameter("search").getBytes("ISO-8859-1"),"gb2312")+"%';";
}
这一句有问题。
先获取参数的值,再转换编码,如果request.getParameter("search")为空,你再调用getbytes方法不是出错了?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯