前面我将自己添加好友的思路,以及测试做好了,这里放在一起来回顾自己的思路和中间遇到问题:先看结果,╭(╯^╰)╮界面是有点说不过去。。。。
这里不再说留言板的显示具体实现过程,留言表有两个外键,对应用户表的ID,选择好友进行留言,这个功能以前回顾过,这里不再赘述。
添加好友,前天自己下午测试成功但是中间过程太繁琐。今天整理出来。先说说我项目中缺陷,我没有做拒绝的功能,只有同意,,还有添加好友时,没有判断该ID是否存在就直接添加,这些问题前者是我我觉得我想不够好没写,后者是因为只是个人测试就没去实现。还有一个重复添加的问题我也没有解决。
①建friend表:里面有编号,发送人编号,接收人编号,以及一个状态判断state属性(判断是否成为好友)
②Dao层的方法:
③action调用这些方法来实现这些功能:
package action;import java.util.ArrayList;
import java.util.List;import dao.MessageDao;
import dao.ReachfriendDao;
import domain.Friend;
import domain.Message;
import domain.User;public class AddAction extends SuperAction {private User user;private int id;private ReachfriendDao dao=new ReachfriendDao();private MessageDao mdao=new MessageDao();public String showf(){if(user==null){user=(User) session.getAttribute("user");}List<Friend> list=dao.showf(user.getUser_id());System.out.println("好友数量:"+list.size());session.setAttribute("list3", list);return "showf";}public String agree(){if(user==null){user=(User) session.getAttribute("user");}System.out.println("huoquID"+user.getUser_id());List<Friend> list=dao.showN(user.getUser_id());System.out.println("record:"+list.size());session.setAttribute("list2", list);return "agree";}public String agree2(){if(user==null){user=(User) session.getAttribute("user");}dao.agree2(id);return "agree2";}public String add(){int idadd=Integer.parseInt(session.getAttribute("id").toString());dao.add(id,idadd);return "add";}public String text(){if(user==null){user=(User) session.getAttribute("user");}List<Message> list=mdao.showM(user.getUser_id());//liuyanList list1=new ArrayList();for(int i=0;i<list.size();i++){list1.add(list.get(i).getUser().getUser_name()); }session.setAttribute("list1", list1);if(dao.avil(user.getUser_id(), user.getUser_pwd())){session.setAttribute("id", user.getUser_id());System.out.println("id"+user.getUser_id());User user1= dao.reach(user.getUser_id());//ziliaoSystem.out.println("jilu"+list.size());int n=dao.result(0, user.getUser_id());//newscontext.put("n", n);session.setAttribute("list", list);session.setAttribute("user", user1);context.put("user", user1);return "text";}elsereturn INPUT;}
public User getUser() {return user;
}
public void setUser(User user) {this.user = user;
}
public int getId() {return id;
}
public void setId(int id) {this.id = id;
}}
④jsp页面
<%@page import="dao.MessageDao"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>实际项目</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><table border="1" width="100%" cellspacing="20" height="2%"><!-- 第一行 --><tr><td><font style="color:green; font-size: 40px">qq442270636:</font></td><td align="left" colspan="5" ><a href="${pageContext.request.contextPath }/text_agree.action">好友请求+</a><s:property value="#n"/> <s:iterator value="%{#session.list2}" status="s"><a href="${pageContext.request.contextPath }/text_agree2.action?id=<s:property value="send_id" />">同意账号为:<s:property value="send_id" />的请求</a></s:iterator></td></tr><tr align="center"><td rowspan="4" width="20%"><img src="${pageContext.request.contextPath }/image/女神.jpg" width="300px" height="500px"></img></td><td height="3%" width="15%">个人资料:</td><td>账号:<s:property value="#user.user_id" /></td><td>姓名:<s:property value="#user.user_name" /></td><td>个性签名:<s:property value="#user.user_sign" /></td></tr><tr><form action="text_add" method="post"><td align="right" height="2%"><input type="text" name="id"></td><td><input type="submit" value="加好友"></td></form><td colspan="3"><a href="text_showf.action?id=<s:property value="#user.user_id" /> ">我的好友</a><s:iterator value="%{#session.list3}" status="s">好友账号:<s:property value="send_id" /></s:iterator></td></tr><form action="text_message" method="post"><tr><td height="3%" align="right">留言:</td><td colspan="5"><textarea name="message" rows="10" cols="80"></textarea> <input type="submit" value="留言"></td></tr></form></table><table align="center" border="1" cellpadding="20"><tr><td>内容</td><td>接收人</td><td>发送人</td></tr><s:iterator value="%{#session.list}" var="t" status="s"><tr colspan="6" height="35%" bgColor="#00ff80"><td><s:property value="message"/></td><td> <s:property value="#user.user_name"/> </td> <td><s:property value="%{#session.list1[#s.index]}" /></td></td></tr></s:iterator></table></body>
</html>
中间我修改state时候不知道更新还需要知道主键,有点卡住,以及在遍历留言时候,因为外键是ID通过ID在iterator遍历如何显示名字:我先通过:
List list1=new ArrayList();
for(int i=0;i<list.size();i++){
list1.add(list.get(i).getUser().getUser_name());
}
session.setAttribute("list1", list1);保存姓名,然后
在struts2中用迭代器把名字显示出来:这个问题也纠结半天。
%{#session.list1[#s.index]}
这个项目中我发现自己存在一些小的问题:思路有但是存在知识上的一些漏洞,后面开始复习spring,以及学习前端的东西,还有ajax和以前没有涉及的东西。还有大三的期末考试也快了,fighting..............................