为什么查询没数据? 查询出来的结果没数据,数据库明明有数据。前台不报错,后台也不报错。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把你的SQL语句copy出来,在PL/SQL或者其他的工具里面执行看能得到数据不 1、sql放數據庫有東西不2、連接的庫對不3、用拼接SQL的方式能查出來不 一个三个页面 第一个jsp页面<%@ page contentType="text/html; charset=gbk"%><%@page import="smartmt.db.DataSourceFactory"%><%@page import="java.util.ArrayList"%><%@page import="smartmt.model.Address"%><%@page import="smartmt.db.AddressDao"%><%@page import="smartmt.model.AddressGroup"%><%@ taglib uri="http://displaytag.sf.net" prefix="display" %><html> <head> <title>.</title> <meta content="text/html; charset=GBK" http-equiv="Content-Type"> <style type="text/css" media="all"> @import url("../css/displayTag/maven-base.css"); @import url("../css/displayTag/maven-theme.css"); @import url("../css/displayTag/site.css"); @import url("../css/displayTag/screen.css"); </style> <link rel="stylesheet" href="../css/misc2.css" type="text/css"> <link rel="stylesheet" href="../css/thickbox.css" type="text/css" media="screen" /> <script type="text/javascript" src="../js/jquery.js"></script> <script type="text/javascript" src="../js/thickbox.js"></script> <script LANGUAGE="JavaScript"> function checkAll() { var a = document.getElementsByName("checkbox_phone"); var n = a.length; for (var i=0; i<n; i++) { a[i].checked = true;//window.event.srcElement.checked; } } function cancelAll() { var a = document.getElementsByName("checkbox_phone"); var n = a.length; for (var i=0; i<n; i++) { a[i].checked = false;//window.event.srcElement.checked; } } function go() { addrForm.action = "manual.jsp"; var a = document.getElementsByName("checkbox_phone"); var n = a.length; var count = 0; for (var i=0; i<n; i++) { if(a[i].checked) count++; } if(count > 0) { return true; } else { alert("您未选中任何联系人"); return false; } } function go_all(groupId) { location="manual.jsp?addAll=yes&groupId="+groupId; } function groupChange(value) { location="b_all.jsp?groupId="+value; } function deleteAddr() { var a = document.getElementsByName("checkbox_phone"); var n = a.length; var count = 0; for (var i=0; i<n; i++) { if(a[i].checked) count++; } if(count > 0) { addrForm.action = "b_delete.jsp"; return confirm("您选中了"+count+"条联系人记录,确认要删除吗?"); } else { alert("您未选中任何联系人"); return false; } } </script> </head> <% String start = request.getParameter("start"); String name = request.getParameter("name"); Long userId = (Long)session.getAttribute("userId"); String phone = request.getParameter("phone"); if(userId == null) { %><script>top.window.location.href='../index.htm'</script><% return; } AddressDao aDao = new AddressDao(DataSourceFactory.getDataSource()); String groupId = request.getParameter("groupId"); long lGroupId = -1; if(groupId != null) { lGroupId = Long.parseLong(groupId); } ArrayList<Address> aList = aDao.getAllAddressPlus(userId,lGroupId); %> <body bgcolor="#efefef"> <form method="get" action="b_nameall.jsp"> 手机号码 <input type="text" name="phone" value="<%=phone == null ? "" : phone%>"> 姓名 <input type="text" name="name" value=""> 生日 <input type="text" id="dateStart" name="start" value="<%=start%>" /> <input type="submit" value="查询" /> </form> <a href="b_insert.jsp?keepThis=true&TB_iframe=true&height=350&width=400" title="添加联系人" class="thickbox">添加联系人</a> <a href="b_group_insert.jsp?keepThis=true&TB_iframe=true&height=350&width=400" title="添加分组" class="thickbox">添加分组</a> <a href="b_group_setting.jsp?keepThis=true&TB_iframe=true&height=350&width=400" title="修改分组" class="thickbox">修改分组</a> <a href="b_group_delete.jsp?keepThis=true&TB_iframe=true&height=350&width=400" title="删除分组" class="thickbox">删除分组</a> <a href="b_upload.jsp?keepThis=true&TB_iframe=true&height=350&width=400" title="导入联系人" class="thickbox">导入联系人</a> <a href="template.xls">导入文件模板下载</a><br/> <select name="groupId" onchange="groupChange(this.options[this.options.selectedIndex].value)"> <option value="-1">全部联系人</option> <% ArrayList<AddressGroup> groupList = aDao.getAllGroup(userId); for(AddressGroup group : groupList) { %><option value="<%=group.getId()%>" <%=lGroupId==group.getId()?"selected":""%>><%=group.getName()%></option><% } //户名、手机号码、分组、公司、地址 %> </select> <form id="addrForm" method="get" action="manual.jsp"> <% request.setAttribute( "aList", aList ); %> <display:table name="aList" pagesize="20" decorator="smartmt.display.AddressDecorator" id="dis"> <display:column property="checkBox" title="选中"/> <display:column property="name" title="姓名" /> <display:column property="groupName" title="分组"/> <display:column property="phone" title="手机号码"/> <display:column property="company" title="公司"/> <display:column property="address" title="地址"/> </display:table> <input type="button" value="全部选中" onclick="checkAll()"> <input type="button" value="全部取消" onclick="cancelAll()"> <input type="submit" value="发送短信" onclick="return go()"> <input type="submit" value="删除联系人" onclick="return deleteAddr()"> <input type="button" value="发送短信(分组全部联系人)" onclick="return go_all(<%=lGroupId%>)"> </form> </body></html> 第二个JSP页面<%@ page contentType="text/html; charset=gbk"%><%@page import="smartmt.db.DataSourceFactory"%><%@page import="java.util.ArrayList"%><%@page import="smartmt.model.Address"%><%@page import="smartmt.db.AddressDao"%><%@page import="smartmt.model.AddressGroup"%><%@page import="smartmt.model.Bill"%><%@page import="java.util.HashMap"%><%@ taglib uri="http://displaytag.sf.net" prefix="display" %><html> <head> <title>.</title> <meta content="text/html; charset=GBK" http-equiv="Content-Type"> <style type="text/css" media="all"> @import url("../css/displayTag/maven-base.css"); @import url("../css/displayTag/maven-theme.css"); @import url("../css/displayTag/site.css"); @import url("../css/displayTag/screen.css"); </style> <link rel="stylesheet" href="../css/misc2.css" type="text/css"> <link rel="stylesheet" href="../css/thickbox.css" type="text/css" media="screen" /> <script type="text/javascript" src="../js/jquery.js"></script> <script type="text/javascript" src="../js/thickbox.js"></script> <script LANGUAGE="JavaScript"> function checkAll() { var a = document.getElementsByName("checkbox_phone"); var n = a.length; for (var i=0; i<n; i++) { a[i].checked = true;//window.event.srcElement.checked; } } function cancelAll() { var a = document.getElementsByName("checkbox_phone"); var n = a.length; for (var i=0; i<n; i++) { a[i].checked = false;//window.event.srcElement.checked; } } function go() { addrForm.action = "manual.jsp"; var a = document.getElementsByName("checkbox_phone"); var n = a.length; var count = 0; for (var i=0; i<n; i++) { if(a[i].checked) count++; } if(count > 0) { return true; } else { alert("您未选中任何联系人"); return false; } } function go_all(groupId) { location="manual.jsp?addAll=yes&groupId="+groupId; } function groupChange(value) { location="b_all.jsp?groupId="+value; } function deleteAddr() { var a = document.getElementsByName("checkbox_phone"); var n = a.length; var count = 0; for (var i=0; i<n; i++) { if(a[i].checked) count++; } if(count > 0) { addrForm.action = "b_delete.jsp"; return confirm("您选中了"+count+"条联系人记录,确认要删除吗?"); } else { alert("您未选中任何联系人"); return false; } } </script> </head> <% String start = request.getParameter("start"); String name = request.getParameter("name"); Long userId = (Long)session.getAttribute("userId"); String phone = request.getParameter("phone"); if(userId == null) { %><script>top.window.location.href='../index.htm'</script><% return; } AddressDao aDao = new AddressDao(DataSourceFactory.getDataSource()); String groupId = request.getParameter("groupId"); long lGroupId = -1; if(groupId != null) { lGroupId = Long.parseLong(groupId); } //ArrayList<Address> aList = aDao.getAllAddressPlus(userId,lGroupId); //ArrayList<Address> aList = aDao.getAllAddressPlus1(name,userId,lGroupId); //ArrayList<HashMap<String, String>> aList= aDao.getMoList(userId, start, phone, name); ArrayList<Address> aList1=aDao.adreesName(name); %> <body bgcolor="#efefef"> <% request.setAttribute("aList1", aList1); %> <display:table name="aList" pagesize="20"> <display:column property="checkBox" title="选中" /> <display:column property="id" title="id" /> <display:column property="name" title="姓名" /> <display:column property="gender" title="分组" /> <display:column property="phone" title="手机号码" /> <display:column property="job" title="职位" /> <display:column property="company" title="公司" /> <display:column property="address" title="地址" /> <display:column property="birthday" title="生日" /> <display:column property="email" title="邮箱" /> <display:column property="qq" title="QQ" /> <display:column property="msn" title="MSN" /> <display:column property="reserve" title="地址" /> <display:column property="userId" title="用户编号" /> <display:column property="groupId" title="组号" /> </display:table><br> <input type="button" value="全部选中" onclick="checkAll()"> <input type="button" value="全部取消" onclick="cancelAll()"> <input type="submit" value="发送短信" onclick="return go()"> <input type="submit" value="删除联系人" onclick="return deleteAddr()"> <input type="button" value="发送短信(分组全部联系人)" onclick="return go_all(<%=lGroupId%>)"> <form method="get" action="b_all.jsp"> <input type="submit" value="返回"/> </form> </body></html> 还有个DAOpublic ArrayList<Address> adreesName(String name) { ArrayList<Address> aList=new ArrayList<Address>(); String sql = "select * from plat_address_book with(nolock) where name=?"; List tbl = dbexec.queryForList(sql,new Object[]{ name} ); Iterator it = tbl.iterator(); while(it.hasNext()) { Address addr = new Address(); Map rec = (Map)it.next(); addr.setId((Long)rec.get("id")); addr.setName((String)rec.get("name")); addr.setGender((Integer)rec.get("gender")); addr.setPhone((String)rec.get("phone")); addr.setJob((String)rec.get("job")); addr.setCompany((String)rec.get("company")); addr.setAddress((String)rec.get("address")); addr.setBirthday((Timestamp)rec.get("birthday")); addr.setEmail((String)rec.get("email")); addr.setQq((String)rec.get("qq")); addr.setMsn((String)rec.get("msn")); addr.setReserve((String)rec.get("reserve")); addr.setUserId((Long)rec.get("userId")); addr.setGroupId((Long)rec.get("groupId")); aList.add(addr); } return aList; } 既然在PL/SQL里面可以得到数据,那么肯定是在处理返回结果集的时候有问题了,你们用的是JDBC还是框架的东西? String sql = "select * from plat_address_book with(nolock) where name=?";List tbl = dbexec.queryForList(sql,new Object[]{ name} );這個name打印出來是什麽 看看你的编码!最好用GBK的,还有取值得时候也得加上request.setCharacterEncoding("gbk");response.setCharacterEncoding("gbk");要保证你输入的中文不是乱码。 要不在你取出的字符串在转一次,如:name=new String(name.getBytes("iso-8859-1"),"gbk"); String start = request.getParameter("start");String name = request.getParameter("name"); 在这个的上面加上:request.setCharacterEncoding("gbk");response.setCharacterEncoding("gbk");如果不行的话就第二种:String name = request.getParameter("name"); name=new String(name.getBytes("iso-8859-1"),"gbk");在不行就自己写个过滤器了。 org.apache.jasper.JasperException: An exception occurred processing JSP page /AddressBook/b_all.jsp at line 8380: 81: String start = request.getParameter("start");82: String name = request.getParameter("name"); 83: name=new String(name.getBytes("iso-8859-1"),"gbk");84: Long userId = (Long)session.getAttribute("userId");85: String phone = request.getParameter("phone");86: if(userId == null) {Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)root causejava.lang.NullPointerException org.apache.jsp.AddressBook.b_005fall_jsp._jspService(b_005fall_jsp.java:148) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)这样写报错了 你没有输name的值吧,你把null拿去转肯定就错了嘛? 前面那几位也说了。编码问题。本人建议编码还是用UTF-8的,对中文的兼容性比较好(虽然有些中文字不能正常显示)。还有那个GBK大写试试。检查一下 自己的字符过滤器配置时在web.xml中是否是写在最前面。 PL/SQL里面可以得到数据,JDBC也不一定能够查询出来--也许你的数据是从PL/SQL添加的还没提交呢 全部用utf-8,頁面到後臺,凡是有設置編碼的,全部utf-8 不行 这整个项目都是GBK 刚才试了下 转码的问题也解决了 可以取到值了 是正确的 但还是查不出值 数据库里 明明有这个值的 怎么回事? String sql = "select * from plat_address_book with(nolock) where name=?"; List tbl = dbexec.queryForList(sql,new Object[]{name} ); System.out.println(name); SQL是对的。值已经在后台打印出了 是正确的。 select * from plat_address_book with(nolock) where name=?這句SQL丟到數據庫有結果不 有结果。会不会是JSP页面值的问题? 就是两个页面直接的传值 我把查询的那个文本框 房子 b_all.jsp页面去了。 然后要在b_nameall.jsp 显示查询的数据。 如果在b_all里面显示数据的话 就会有乱码问题。 debug 的结果是 JSP页面没取到值 怎么回事? dbexec.queryForList(sql,new Object[]{name} );把這個類貼出來 @SuppressWarnings("unchecked") public ArrayList<Address> adreesName(String name) { ArrayList<Address> aList=new ArrayList<Address>(); String sql = "select * from plat_address_book with(nolock) where name=?"; List tbl = dbexec.queryForList(sql,new Object[]{name} ); System.out.println(name); Iterator it = tbl.iterator(); while(it.hasNext()) { Address addr = new Address(); Map rec = (Map)it.next(); addr.setId((Long)rec.get("id")); addr.setName((String)rec.get("name")); addr.setGender((Integer)rec.get("gender")); addr.setPhone((String)rec.get("phone")); addr.setJob((String)rec.get("job")); addr.setCompany((String)rec.get("company")); addr.setAddress((String)rec.get("address")); addr.setBirthday((Timestamp)rec.get("birthday")); addr.setEmail((String)rec.get("email")); addr.setQq((String)rec.get("qq")); addr.setMsn((String)rec.get("msn")); addr.setReserve((String)rec.get("reserve")); addr.setUserId((Long)rec.get("userId")); addr.setGroupId((Long)rec.get("groupId")); aList.add(addr); } return aList; } 应该是编码的问题啊。你在数据库里name设一个英文名字。然后用原来的代码,查询的时候输入这个英文的名字。如果可以的话就说明没有别的错误只是汉字字符集编码问题。 貼錯了是這個dbexec.queryForList(sql,new Object[]{name} ); 现在的问题是就是两个页面直接的传值 我把查询的那个文本框 放在 b_all.jsp页面去了。 然后要在b_nameall.jsp 显示查询的数据。 如果在b_all里面显示数据的话 就会有乱码问题。 List tbl = dbexec.queryForList(sql,new Object[]{name} );加句System.out.pringln(tbl.size());看看這裏有沒東西出來 第一,再次檢查SQL第二,dbexec.queryForList這個可能有問題不過多是SQL問題。。 检查确认 SQL没问题。是两个页面 传值的问题 。那位高人指点 两个页面传值的问题。然后如果在一个页面显示结果的话 就会有乱码问题 但是值能传过来。 你百度搜tomcat乱码、、你看看数据库中是不是乱码了已经、后台打印是否乱码 你的数据库编码要和jsp中一样 最好debug看看。debug能看到的。。 看看 有什么东西缺少了 比标准标签库中的<tag .....> 我遇见过种问题:一般是你这个表中有一列是数字类型,结果表这个列的数据 出现被零除或是无限大的数字。你可以把一列一列的显示 ,不要用select * ,看看是哪列有问题 如果是oracle看看是不是你插入数据后没有commit; 怎么现在还有在jsp页面嵌套一大推代码的啊? 学习一下 String sql = "select * from plat_address_book with(nolock) where name=?"; List tbl = dbexec.queryForList(sql,new Object[]{ name} );with(nolock)是什么意思? 你敢不敢用debug一步步跟进去 看看是在哪边出的问题啊 先看看从页面取到的值在后台是对的不 在看看你连接的数据库是对的不 不行就一步步跟进去 看看在哪儿走不下去的。 各位大侠们解决了。是displaytag里面checkbox的问题。谢谢各位大侠了 嘎嘎 发布实体bean是报错 struts:plug-in加载错误 struts2 文件上传问题 ¥急¥ servlet验证数据究竟该怎么写? 一般人不知道 急,JACOB调用OCX控件问题 两个连接怎么使用同一个事务 连weblogic连接池的问题 JMS到底是用做干什么得???? spring web应用中,调用bean 哪儿有SUN JDK1.4.1 API可以下载(在线等待,立即结帐) xml文件中的元素和属性的含义的帮助手册 别说三天了,这都三个月了还没人解决!!!
2、連接的庫對不
3、用拼接SQL的方式能查出來不
<%@ page contentType="text/html; charset=gbk"%>
<%@page import="smartmt.db.DataSourceFactory"%>
<%@page import="java.util.ArrayList"%>
<%@page import="smartmt.model.Address"%>
<%@page import="smartmt.db.AddressDao"%>
<%@page import="smartmt.model.AddressGroup"%>
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
<html>
<head>
<title>.</title>
<meta content="text/html; charset=GBK" http-equiv="Content-Type">
<style type="text/css" media="all">
@import url("../css/displayTag/maven-base.css");
@import url("../css/displayTag/maven-theme.css");
@import url("../css/displayTag/site.css");
@import url("../css/displayTag/screen.css");
</style>
<link rel="stylesheet" href="../css/misc2.css" type="text/css">
<link rel="stylesheet" href="../css/thickbox.css" type="text/css" media="screen" />
<script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript" src="../js/thickbox.js"></script>
<script LANGUAGE="JavaScript">
function checkAll() {
var a = document.getElementsByName("checkbox_phone");
var n = a.length;
for (var i=0; i<n; i++) {
a[i].checked = true;//window.event.srcElement.checked;
}
} function cancelAll() {
var a = document.getElementsByName("checkbox_phone");
var n = a.length;
for (var i=0; i<n; i++) {
a[i].checked = false;//window.event.srcElement.checked;
}
} function go() {
addrForm.action = "manual.jsp";
var a = document.getElementsByName("checkbox_phone");
var n = a.length;
var count = 0;
for (var i=0; i<n; i++) {
if(a[i].checked) count++;
}
if(count > 0) {
return true;
} else {
alert("您未选中任何联系人");
return false;
}
}
function go_all(groupId) {
location="manual.jsp?addAll=yes&groupId="+groupId;
} function groupChange(value) {
location="b_all.jsp?groupId="+value;
}
function deleteAddr() {
var a = document.getElementsByName("checkbox_phone");
var n = a.length;
var count = 0;
for (var i=0; i<n; i++) {
if(a[i].checked) count++;
}
if(count > 0) {
addrForm.action = "b_delete.jsp";
return confirm("您选中了"+count+"条联系人记录,确认要删除吗?");
} else {
alert("您未选中任何联系人");
return false;
}
}
</script>
</head>
<%
String start = request.getParameter("start");
String name = request.getParameter("name");
Long userId = (Long)session.getAttribute("userId");
String phone = request.getParameter("phone");
if(userId == null) {
%><script>top.window.location.href='../index.htm'</script><%
return;
}
AddressDao aDao = new AddressDao(DataSourceFactory.getDataSource());
String groupId = request.getParameter("groupId");
long lGroupId = -1;
if(groupId != null) {
lGroupId = Long.parseLong(groupId);
}
ArrayList<Address> aList = aDao.getAllAddressPlus(userId,lGroupId);
%>
<body bgcolor="#efefef">
<form method="get" action="b_nameall.jsp"> 手机号码
<input type="text" name="phone"
value="<%=phone == null ? "" : phone%>">
姓名
<input type="text" name="name" value="">
生日
<input type="text" id="dateStart" name="start" value="<%=start%>" />
<input type="submit" value="查询" />
</form>
<a href="b_insert.jsp?keepThis=true&TB_iframe=true&height=350&width=400" title="添加联系人" class="thickbox">添加联系人</a>
<a href="b_group_insert.jsp?keepThis=true&TB_iframe=true&height=350&width=400" title="添加分组" class="thickbox">添加分组</a>
<a href="b_group_setting.jsp?keepThis=true&TB_iframe=true&height=350&width=400" title="修改分组" class="thickbox">修改分组</a>
<a href="b_group_delete.jsp?keepThis=true&TB_iframe=true&height=350&width=400" title="删除分组" class="thickbox">删除分组</a>
<a href="b_upload.jsp?keepThis=true&TB_iframe=true&height=350&width=400" title="导入联系人" class="thickbox">导入联系人</a>
<a href="template.xls">导入文件模板下载</a><br/>
<select name="groupId" onchange="groupChange(this.options[this.options.selectedIndex].value)">
<option value="-1">全部联系人</option>
<%
ArrayList<AddressGroup> groupList = aDao.getAllGroup(userId);
for(AddressGroup group : groupList) {
%><option value="<%=group.getId()%>" <%=lGroupId==group.getId()?"selected":""%>><%=group.getName()%></option><%
}
//户名、手机号码、分组、公司、地址
%>
</select> <form id="addrForm" method="get" action="manual.jsp">
<% request.setAttribute( "aList", aList ); %>
<display:table name="aList" pagesize="20" decorator="smartmt.display.AddressDecorator" id="dis">
<display:column property="checkBox" title="选中"/>
<display:column property="name" title="姓名" />
<display:column property="groupName" title="分组"/>
<display:column property="phone" title="手机号码"/>
<display:column property="company" title="公司"/>
<display:column property="address" title="地址"/>
</display:table>
<input type="button" value="全部选中" onclick="checkAll()">
<input type="button" value="全部取消" onclick="cancelAll()">
<input type="submit" value="发送短信" onclick="return go()">
<input type="submit" value="删除联系人" onclick="return deleteAddr()">
<input type="button" value="发送短信(分组全部联系人)" onclick="return go_all(<%=lGroupId%>)">
</form>
</body>
</html>
<%@ page contentType="text/html; charset=gbk"%>
<%@page import="smartmt.db.DataSourceFactory"%>
<%@page import="java.util.ArrayList"%>
<%@page import="smartmt.model.Address"%>
<%@page import="smartmt.db.AddressDao"%>
<%@page import="smartmt.model.AddressGroup"%>
<%@page import="smartmt.model.Bill"%>
<%@page import="java.util.HashMap"%>
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
<html>
<head>
<title>.</title>
<meta content="text/html; charset=GBK" http-equiv="Content-Type">
<style type="text/css" media="all">
@import url("../css/displayTag/maven-base.css");
@import url("../css/displayTag/maven-theme.css");
@import url("../css/displayTag/site.css");
@import url("../css/displayTag/screen.css");
</style>
<link rel="stylesheet" href="../css/misc2.css" type="text/css">
<link rel="stylesheet" href="../css/thickbox.css" type="text/css" media="screen" />
<script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript" src="../js/thickbox.js"></script>
<script LANGUAGE="JavaScript">
function checkAll() {
var a = document.getElementsByName("checkbox_phone");
var n = a.length;
for (var i=0; i<n; i++) {
a[i].checked = true;//window.event.srcElement.checked;
}
} function cancelAll() {
var a = document.getElementsByName("checkbox_phone");
var n = a.length;
for (var i=0; i<n; i++) {
a[i].checked = false;//window.event.srcElement.checked;
}
} function go() {
addrForm.action = "manual.jsp";
var a = document.getElementsByName("checkbox_phone");
var n = a.length;
var count = 0;
for (var i=0; i<n; i++) {
if(a[i].checked) count++;
}
if(count > 0) {
return true;
} else {
alert("您未选中任何联系人");
return false;
}
}
function go_all(groupId) {
location="manual.jsp?addAll=yes&groupId="+groupId;
} function groupChange(value) {
location="b_all.jsp?groupId="+value;
}
function deleteAddr() {
var a = document.getElementsByName("checkbox_phone");
var n = a.length;
var count = 0;
for (var i=0; i<n; i++) {
if(a[i].checked) count++;
}
if(count > 0) {
addrForm.action = "b_delete.jsp";
return confirm("您选中了"+count+"条联系人记录,确认要删除吗?");
} else {
alert("您未选中任何联系人");
return false;
}
}
</script>
</head>
<%
String start = request.getParameter("start");
String name = request.getParameter("name");
Long userId = (Long)session.getAttribute("userId");
String phone = request.getParameter("phone");
if(userId == null) {
%><script>top.window.location.href='../index.htm'</script><%
return;
}
AddressDao aDao = new AddressDao(DataSourceFactory.getDataSource());
String groupId = request.getParameter("groupId");
long lGroupId = -1;
if(groupId != null) {
lGroupId = Long.parseLong(groupId);
}
//ArrayList<Address> aList = aDao.getAllAddressPlus(userId,lGroupId);
//ArrayList<Address> aList = aDao.getAllAddressPlus1(name,userId,lGroupId);
//ArrayList<HashMap<String, String>> aList= aDao.getMoList(userId, start, phone, name);
ArrayList<Address> aList1=aDao.adreesName(name);
%>
<body bgcolor="#efefef">
<%
request.setAttribute("aList1", aList1);
%>
<display:table name="aList" pagesize="20">
<display:column property="checkBox" title="选中" />
<display:column property="id" title="id" />
<display:column property="name" title="姓名" />
<display:column property="gender" title="分组" />
<display:column property="phone" title="手机号码" />
<display:column property="job" title="职位" />
<display:column property="company" title="公司" />
<display:column property="address" title="地址" />
<display:column property="birthday" title="生日" />
<display:column property="email" title="邮箱" />
<display:column property="qq" title="QQ" />
<display:column property="msn" title="MSN" />
<display:column property="reserve" title="地址" />
<display:column property="userId" title="用户编号" />
<display:column property="groupId" title="组号" />
</display:table><br>
<input type="button" value="全部选中" onclick="checkAll()">
<input type="button" value="全部取消" onclick="cancelAll()">
<input type="submit" value="发送短信" onclick="return go()">
<input type="submit" value="删除联系人" onclick="return deleteAddr()">
<input type="button" value="发送短信(分组全部联系人)"
onclick="return go_all(<%=lGroupId%>)">
<form method="get" action="b_all.jsp">
<input type="submit" value="返回"/>
</form>
</body>
</html>
{
ArrayList<Address> aList=new ArrayList<Address>();
String sql = "select * from plat_address_book with(nolock) where name=?";
List tbl = dbexec.queryForList(sql,new Object[]{ name} );
Iterator it = tbl.iterator();
while(it.hasNext()) {
Address addr = new Address();
Map rec = (Map)it.next();
addr.setId((Long)rec.get("id"));
addr.setName((String)rec.get("name"));
addr.setGender((Integer)rec.get("gender"));
addr.setPhone((String)rec.get("phone"));
addr.setJob((String)rec.get("job"));
addr.setCompany((String)rec.get("company"));
addr.setAddress((String)rec.get("address"));
addr.setBirthday((Timestamp)rec.get("birthday"));
addr.setEmail((String)rec.get("email"));
addr.setQq((String)rec.get("qq"));
addr.setMsn((String)rec.get("msn"));
addr.setReserve((String)rec.get("reserve"));
addr.setUserId((Long)rec.get("userId"));
addr.setGroupId((Long)rec.get("groupId"));
aList.add(addr);
}
return aList;
}
String sql = "select * from plat_address_book with(nolock) where name=?";
List tbl = dbexec.queryForList(sql,new Object[]{ name} );這個name打印出來是什麽
request.setCharacterEncoding("gbk");
response.setCharacterEncoding("gbk");
要保证你输入的中文不是乱码。
name=new String(name.getBytes("iso-8859-1"),"gbk");
String name = request.getParameter("name");
在这个的上面加上:
request.setCharacterEncoding("gbk");
response.setCharacterEncoding("gbk");
如果不行的话就第二种:
String name = request.getParameter("name");
name=new String(name.getBytes("iso-8859-1"),"gbk");
在不行就自己写个过滤器了。
81: String start = request.getParameter("start");
82: String name = request.getParameter("name");
83: name=new String(name.getBytes("iso-8859-1"),"gbk");
84: Long userId = (Long)session.getAttribute("userId");
85: String phone = request.getParameter("phone");
86: if(userId == null) {
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root causejava.lang.NullPointerException
org.apache.jsp.AddressBook.b_005fall_jsp._jspService(b_005fall_jsp.java:148)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
这样写报错了
全部用utf-8,頁面到後臺,凡是有設置編碼的,全部utf-8
不行 这整个项目都是GBK 刚才试了下 转码的问题也解决了 可以取到值了 是正确的 但还是查不出值 数据库里 明明有这个值的 怎么回事?
String sql = "select * from plat_address_book with(nolock) where name=?";
List tbl = dbexec.queryForList(sql,new Object[]{name} );
System.out.println(name);
SQL是对的。值已经在后台打印出了 是正确的。
会不会是JSP页面值的问题?
如果在b_all里面显示数据的话 就会有乱码问题。
debug 的结果是 JSP页面没取到值 怎么回事?
@SuppressWarnings("unchecked")
public ArrayList<Address> adreesName(String name)
{
ArrayList<Address> aList=new ArrayList<Address>();
String sql = "select * from plat_address_book with(nolock) where name=?";
List tbl = dbexec.queryForList(sql,new Object[]{name} );
System.out.println(name);
Iterator it = tbl.iterator();
while(it.hasNext()) {
Address addr = new Address();
Map rec = (Map)it.next();
addr.setId((Long)rec.get("id"));
addr.setName((String)rec.get("name"));
addr.setGender((Integer)rec.get("gender"));
addr.setPhone((String)rec.get("phone"));
addr.setJob((String)rec.get("job"));
addr.setCompany((String)rec.get("company"));
addr.setAddress((String)rec.get("address"));
addr.setBirthday((Timestamp)rec.get("birthday"));
addr.setEmail((String)rec.get("email"));
addr.setQq((String)rec.get("qq"));
addr.setMsn((String)rec.get("msn"));
addr.setReserve((String)rec.get("reserve"));
addr.setUserId((Long)rec.get("userId"));
addr.setGroupId((Long)rec.get("groupId"));
aList.add(addr);
}
return aList;
}
貼錯了是這個dbexec.queryForList(sql,new Object[]{name} );
现在的问题是就是两个页面直接的传值 我把查询的那个文本框 放在 b_all.jsp页面去了。 然后要在b_nameall.jsp 显示查询的数据。
如果在b_all里面显示数据的话 就会有乱码问题。
第二,dbexec.queryForList這個可能有問題不過多是SQL問題。。
检查确认 SQL没问题。
是两个页面 传值的问题 。
那位高人指点 两个页面传值的问题。
然后如果在一个页面显示结果的话 就会有乱码问题 但是值能传过来。
你看看数据库中是不是乱码了已经、
后台打印是否乱码
一般是你这个表中有一列是数字类型,结果表这个列的数据 出现被零除或是无限大的数字。你可以把一列一列的显示 ,不要用select * ,看看是哪列有问题
String sql = "select * from plat_address_book with(nolock) where name=?";
List tbl = dbexec.queryForList(sql,new Object[]{ name} );with(nolock)是什么意思?