李继光082055214-毕业论文三稿(8)

2019-04-22 08:45

太原工业学院毕业论文

List topicList =

topicService.findTopTopic(forum.getName(), 5);

map.put(forum, topicList); }

页面设计如图5-5所示

图5-5

图5-

5.2.3.2主题列表显示

单击“版面标题”命令,页面跳转到主题列表页。

详细设计:

1. 根据传过来的参数forumId调用IForumService的findForum方法获取版面信息forum

2. 根据forum中版面名调用ITopicService的findTopicByPage方法查出该版面首页的主题列表,将forum存储到session中

3. 计算该版面的主题总页数,因为测试,暂时使用每页显示2个主题 long topicResult=forum.getTopicCount(); if(topicResult%2==0){

topicTotalPage=topicResult/2;

}else{ }

33

topicTotalPage=topicResult/2+1;

太原工业学院毕业论文

//将主题总页数信息存储到session中

session.setAttribute(\

5.2.3.3发表新主题

在版面页, 单击“发表新主题”,页面将跳转到发表新主题页面 前台采用开源的富文本编辑器kindeditor3.6替代原本的普通的textarea 前台调用kindeditor的javascript代码: 详细设计:

1.判断验证码是否正确,若错误,则立即返回发表新主题页面 2.判断当前用户是否已经登录

3.从session中取出forum的版面信息,将与topic有关的信息封装到topic中 4.处理附件上传

4.1 在struts.xml配置文件中设置了上传的根目录 代码如下:

/attachment /forum/deal.jsp

/forum/newTopic.jsp /login.jsp

4.2 Action类中的处理代码:

if(upload!=null){

//获取在配置文件中配置的根目录

34

太原工业学院毕业论文

String

parent=ServletActionContext.getServletContext().getRealPath(parentPath);

File file=new File(parent);

//判断指定文件夹是否存在,若不存在就新建一个 if(!file.exists()){ }

//以从1970年到现在的秒数作为上传文件的文件名

String upName=System.currentTimeMillis()+uploadFileName .substring(uploadFileName.indexOf('.')); File upFile=new File(file, upName);

BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(upFile));

BufferedInputStream bis=new BufferedInputStream(new FileInputStream(upload)); //设置缓冲区提高文件上传效率 byte[] buf=new byte[1024]; while(bis.read(buf)!=-1){ }

Attachment att=new Attachment(); att.setFileName(upName); att.setFileSize(upload.length());

att.setPath(parentPath.substring(1)+\att.setTopic(topic);

attService.saveOrUpdate(att); //关闭资源 bos.flush(); bis.close();

35

file.mkdir();

bos.write(buf);

太原工业学院毕业论文

bos.close(); }

5.调用ITopicService的add方法保存主题

6.更新版面forum中的信息,更新session中forum和topic对应的值,给用户加 相应的积分,更新用户信息,并记录获得积分的记录

5.2.3.4回复主题

在主题页,点击“回复主题”命令,将进入发表回复页面 详细设计:

1. 判断用户是否已经登录

2. 调用IReplyService接口中的add方法增加回复,更新主题信息 3. 给用户增加相应的积分,更新用户信息,并记录获得积分的记录

5.2.3.5实时回复通知

在论坛首页和主题列表页以及主题页中,采用ajax技术实现了实时回复通知,一旦有其他用户对你所发表的主题进行回复,马上网页标签页上的标题就会显示“您的主题有新回复”

Dwr配置:

前台核心代码: function checkReply(){

36

太原工业学院毕业论文

//直接向后台发送异步请求,检测是否有新回复

}

dwr_reply.findNewReply(checkReplyCallBack);

//回调函数

function checkReplyCallBack(value){ }

//设置每隔3分钟检测一下是否有新回复 setInterval(\

后台在CheckNewReply类中调用findNewReply方法处理这个异步请求

var title=document.getElementsByTagName('title'); if(value!=0){

title.item(0).firstChild.nodeValue=\您的主题有新回复\

}else{ }

console.log(\暂时没有新回复\

5.2.3.6加好友

在主题页中,点击“加为好友”命令,可以加你感兴趣的帖子的作者为好友 核心技术:ajax dwr框架

前台核心代码:

李继光082055214-毕业论文三稿(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:音乐剧对幼儿的教育作用

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: