读书人

java站内讯息的解决方案

发布时间: 2012-12-28 10:29:05 作者: rapoo

java站内消息的解决方案

内容来自:http://www.dev26.com/bbs/topic/191

一个站内信的简单实现方案:

设计一个表结构:

?

/**?* 消息处理Action?* */@Controllerpublic 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");

? ? ? ? }

? ? }

? ? });

}

读书人网 >编程

热点推荐