jquery提交时,在服务器端执行查询时只执行了一部分就中断了

Test_LD 2012-05-16 12:26:49
我在写一个简单的微博
通过jquery提交到showUsers,在执行查询时只执行了部分就不网下执行了 且获取不到返回信息
当前登录用户id=5 其中listenerid=3已收听

后台输出信息:

Hibernate: select listen0_.listenerId as col_0_0_ from listen listen0_ where listen0_.userId=5
当前用户总数:5
true
Hibernate: select user0_.id as id14_, user0_.account as account14_, user0_.password as password14_, user0_.username as username14_ from user user0_ where user0_.id=1
true
Hibernate: select user0_.id as id14_, user0_.account as account14_, user0_.password as password14_,user0_.username as username14_ from user user0_ where user0_.id=2
false
true
Hibernate: select user0_.id as id14_, user0_.account as account14_, user0_.password as password14_, user0_.username as username14_ from user user0_ where user0_.id=4

myblog.js:
$(document).ready(function() 
{
var account=$("#account").html();
$.get("showUsers?account="+account,null,callbackShowUsers);
}
);

function callbackShowUsers(data)
{

alert(data);
$("#listen").html(data);
}


structs.xml:

<action name="showUsers" class="com.ld.blog.action.LoginAction" method="showUsers">
<result name="success">/myBlog.jsp</result>
</action>



com.ld.blog.action.LoginAction.showUsers():
public String showUsers() throws IOException
{

List userList=getRandomUsers();
PrintWriter out=MyConfig.getPrintWriter();
User u;

for(int i=0;i<userList.size();i++)
{
u = (User)(userList.get(i));
out.println("<span id="+u.getId()+">"+u.getUsername()+"<input type=button

value='收听' onclick='listen("+u.getId()+")'/></span>");
}

return null;
}


com.ld.blog.action.LoginAction.getRandomUsers():
//用于随即产生推荐收听的用户
public List getRandomUsers()
{
List userList = new ArrayList();
UserService us=(UserService)MyConfig.getServiceObj("UserService");
ListenService ls=(ListenService)MyConfig.getServiceObj("ListenService");
//获取当前已注册的用户总数
int num=us.getUserNum();

int myId=us.getUserIdByAccount(account);
//获取listen这张表中listenerId,通过用户的id获取他收听的人的Id
//listen表结构:id 主键,userId,listenerId(userId收听listenerId)
//"select l.listenerId from Listen as l where l.userId="+id;
List listenList=ls.getListenByUserId(myId);
System.out.println("当前用户总数:"+num);
if(num<=5)
{
for(int i=0;i<num;i++)
{
//推荐收听的用户不是已收听的和自己
System.out.println(!listenList.contains(i+1));
if(!listenList.contains(i+1)&&i+1!=myId)
{
//getUserObjById(id)根据用户的id获取User 对象
userList.add(i, us.getUserObjById(i+1));
}
}
}
else
{
//在0-num中产生一个数作为起始的id
int id=(int)Math.random()*num;
System.out.println("随机id:"+id);
User u;
//随即产生推荐用户
for(int i=0;i<5;i++)
{
u=us.getUserObjById(id);
System.out.println(!listenList.contains(id));
if(!listenList.contains(id)&&id!=myId)
{
userList.add(i, u);
}
id++;
if(id>num)
{
id=id-num;
}
}
}
return userList;
}
...全文
121 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanyuanwaifdl 2012-05-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

问题已解决 userList.add(i, us.getUserObjById(i+1)); 这里出错了,

list 在 i=3时由于不符合条件直接跳过,index=3没有add,就直接 userList.add(4,。。),由于错误停止执行

但是后台没报错。后把代码写在jsp页面上报错了。
[/Quote] 踩踩踩
a312983516 2012-05-17
  • 打赏
  • 举报
回复
遇到这种类似的问题 使用断点 一切迎刃而解!
Test_LD 2012-05-17
  • 打赏
  • 举报
回复
问题已解决 userList.add(i, us.getUserObjById(i+1)); 这里出错了,

list 在 i=3时由于不符合条件直接跳过,index=3没有add,就直接 userList.add(4,。。),由于错误停止执行

但是后台没报错。后把代码写在jsp页面上报错了。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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