messageaction.java

来自「基于Sturts的DispatchAction的消息管理系统」· Java 代码 · 共 192 行

JAVA
192
字号
package com.bjsxt.messages.web.actions;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.actions.DispatchAction;

import com.bjsxt.messages.MessageException;
import com.bjsxt.messages.manager.LoginManager;
import com.bjsxt.messages.manager.MessageManager;
import com.bjsxt.messages.model.Message;
import com.bjsxt.messages.model.User;
import com.bjsxt.messages.web.forms.LoginActionForm;
import com.bjsxt.messages.web.forms.MessageActionForm;

public class MessageAction extends DispatchAction {

	@Override
	protected ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		//判断是否登录
		User loginUser = (User)request.getSession().getAttribute("login");
		if(loginUser == null){
			return mapping.findForward("login");
		}
		
		//调用后台的业务逻辑方法
		List<Message> msgs = MessageManager.newInstance().findAllUnreadMessages(loginUser.getId());
		
		//向下一个页面传递数据
		request.setAttribute("msgs",msgs);
		
		return mapping.findForward("main");
	}
	
	//读取消息
	public ActionForward readMsg(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		//判断是否登录
		User loginUser = (User)request.getSession().getAttribute("login");
		if(loginUser == null){
			return mapping.findForward("login");
		}
		
		MessageActionForm maf = (MessageActionForm)form;
		Message msg = MessageManager.newInstance().readMessage(maf.getId());
		request.setAttribute("msg",msg);
		return mapping.findForward("detail");
	}
	
	/**
	 * 查找所有接受的消息
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	public ActionForward inbox(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		//判断是否登录
		User loginUser = (User)request.getSession().getAttribute("login");
		if(loginUser == null){
			return mapping.findForward("login");
		}
		
		MessageActionForm maf = (MessageActionForm)form;
		List<Message> msgs = MessageManager.newInstance().findAllReceiveMessages(loginUser.getId());
		request.setAttribute("msgs",msgs);
		
		return mapping.findForward("inbox");
	}
	
	//查找未读消息
	public ActionForward unread(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		//判断是否登录
		User loginUser = (User)request.getSession().getAttribute("login");
		if(loginUser == null){
			return mapping.findForward("login");
		}
		
		MessageActionForm maf = (MessageActionForm)form;
		List<Message> msgs = MessageManager.newInstance().findAllUnreadMessages(loginUser.getId());
		request.setAttribute("msgs",msgs);
		
		return mapping.findForward("inbox");
	}
	
	//查找已读消息
	public ActionForward readed(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		//判断是否登录
		User loginUser = (User)request.getSession().getAttribute("login");
		if(loginUser == null){
			return mapping.findForward("login");
		}
		
		MessageActionForm maf = (MessageActionForm)form;
		List<Message> msgs = MessageManager.newInstance().findAllReadedMessages(loginUser.getId());
		request.setAttribute("msgs",msgs);
		
		return mapping.findForward("inbox");
	}

	//发件箱
	public ActionForward outbox(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		//判断是否登录
		User loginUser = (User)request.getSession().getAttribute("login");
		if(loginUser == null){
			return mapping.findForward("login");
		}
		
		MessageActionForm maf = (MessageActionForm)form;
		List<Message> msgs = MessageManager.newInstance().findAllSendMessages(loginUser.getId());
		request.setAttribute("msgs",msgs);
		
		return mapping.findForward("outbox");
	}
	
	//转向录入消息的页面,只是简单的转向
	public ActionForward inputMsg(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		return mapping.getInputForward();
	}
	
	
	/**
	 * 发送消息
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	public ActionForward sendMsg(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		//判断是否登录
		User loginUser = (User)request.getSession().getAttribute("login");
		if(loginUser == null){
			return mapping.findForward("login");
		}
		
		MessageActionForm maf = (MessageActionForm)form;
		
		try {
			MessageManager.newInstance().sendMessage(maf.getSenderId(),maf.getReceiverId(),maf.getTitle(),maf.getContent());
		} catch (MessageException e) {
			e.printStackTrace();
			
			//异常处理
			ActionMessages messages = new ActionMessages();
			messages.add("error",new ActionMessage(e.getCode()));
			
			this.saveMessages(request,messages);
			
			return mapping.getInputForward();
		}
		
		//转到发件箱
		return outbox(mapping,form,request,response);
	}
	
	//回复消息
	public ActionForward reply(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		MessageActionForm maf = (MessageActionForm)form;
		
		//回复消息,所以需要自动将接收者的id值进行设置
		request.setAttribute("receiverId",maf.getReceiverId());
		
		return mapping.getInputForward();
	}
	
	//删除消息
	public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		MessageActionForm maf = (MessageActionForm)form;
		
		MessageManager.newInstance().deleteMessage(maf.getId());
		
		return mapping.findForward("delete_success");
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?