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 + -
显示快捷键?