内容来自:http://www.dev26.com/bbs/topic/191
一个站内信的简单实现方案:
设计一个表结构:
@Entity
@Table(name="e_msg")
public class Message extends AbstractId {
private User from;
private User to;
private boolean beenRead;
private String title;
private String content;
private long createdDate;
@ManyToOne
@JoinColumn(nullable=false, updatable=false)
public User getFrom() { return from; }
public void setFrom(User from) { this.from = from; }
@ManyToOne
@JoinColumn(nullable=false, updatable=false)
public User getTo() { return to; }
public void setTo(User to) { this.to = to; }
@Column(nullable=false)
public boolean getBeenRead() { return beenRead; }
public void setBeenRead(boolean beenRead) { this.beenRead = beenRead; }
@Column(nullable=false, length=Constants.VARCHAR_TITLE_LENGTH)
public String getTitle() { return title; }
@Form
public void setTitle(String title) { this.title = title; }
@Column(nullable=false, columnDefinition="TEXT")
public String getContent() { return content; }
@Form
public void setContent(String content) { this.content = content; }
@Column(nullable=false, updatable=false)
public long getCreatedDate() { return createdDate; }
public void setCreatedDate(long createdDate) { this.createdDate = createdDate; }
}
Action层的逻辑:
/**
* 消息处理Action
* */
@Controller
public class MessageContrller extends AbstractBaseController {
@RequestMapping(value = "/manage/message/add", method = RequestMethod.POST)
public ModelAndView addMessage(HttpServletRequest request,
HttpServletResponse response) {
Message message = (Message) HttpUtil.createFormBean(request,
Message.class);
String toUserName = HttpUtil.getString(request, "toUserName");
User toUser = facade.queryUser(toUserName);
message.setFrom(HttpUtil.getCurrentUser());
message.setTo(toUser);
facade.createMessage(message);
return null;
}
@RequestMapping(value = "/manage/message/list")
public ModelAndView listMessage(HttpServletRequest request,
HttpServletResponse response) {
Page page = HttpUtil.getPage(request);
User user = HttpUtil.getCurrentUser();
List messages = facade.queryMessages(user, page);
Map map = new HashMap();
map.put("page", page);
map.put("username", user.getUsername());
map.put("messages", messages);
return new ModelAndView("/manage/message/message.htm", map);
}
@RequestMapping(value = "/manage/message/delete")
public String deleteMessage(HttpServletRequest request,
HttpServletResponse response) {
Integer messageId = HttpUtil.getInt(request, "messageId");
Message message = facade.queryMessage(messageId);
facade.deleteMessage(message);
Page page = HttpUtil.getPage(request);
User user = HttpUtil.getCurrentUser();
List messages = facade.queryMessages(user, page);
return "redirect:/manage/message/list";
}
以下是前台的提示功能代码用的是js轮询:
//检查站内消息
$(document).ready(function(){
if(document.getElementById("msgCount")&&g_username){
checkMsg();//首次加载就查询一次,以后每隔一段时间查询一次
setInterval(checkMsg,9900);
}
});
function checkMsg(){
$.ajax({
type:"get",
dataType:"json",
url:"/manage/message/getMsgCount",
data:{username:g_username},
success:function(data,textStatus){
$("#msgCount").html("("+data+")");
if(parseInt(data)>0){
$("#msgCount").css("background-color","red");
}else{
$("#msgCount").css("background-color","#99CC99");
}
}
});
}
分享到:
相关推荐
Java常见错误及解决方案,非常使用的常见错误及解决方案,强烈推荐新手精读
java常见异常 以及这些异常的解决方案
Java单点登录解决方案
基于Apache Tomcat的一站式Java应用服务器解决方案.pdf
Java路径问题最终解决方案之一Java路径问题最终解决方案之一
使用java开发web报表的解决方案,针对中国式复杂报表的全过程解决
软件注册!软件注册!软件注册!软件注册!软件注册!软件注册!软件注册!软件注册!软件注册!软件注册!软件注册!软件注册!软件注册!软件注册!
java持久化的解决方案,java持久化的解决方案
Java安全解决方案
一个java后台程序的解决方案设计(真实项目)
Java微服务系统分布式事务解决方案.docx
JAVA项目实践,URL存在跨站漏洞,注入漏洞解决方案.docx
Java常见错误及解决方案.pdf Java常见错误及解决方案.pdf
本源码项目是基于Java的分布式事务解决方案myth设计,包含402个文件,主要使用Java、JavaScript、Vue和HTML编程语言。该项目是一个采用消息队列解决分布式事务的开源框架,基于Java语言开发(JDK1.8),并支持dubbo...
廖师兄亲授-Java分布式系统解决方案,课程包含分布式ID、分布式Session、分布式任务调度、分布式限流、分库分表、分布式事务六大专题,案例涵盖用户、报表、秒杀、订单等经典场景,企业常用分布式实战案例&解决方案...
解决服务器开启过程中的异常信息如: org.apache.commons.dbcp.BasicDataSource
用Java实现FTP服务器解决方案.doc
Java完美生成word的解决方案 不再需要控件
字节和unicode utf-8 string和byte[] 我们要对java的编译器有所了解
Java内存溢出的详细解决方案 Java内存溢出的详细解决方案