⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 articleaction.java

📁 实现留言薄和发表文章的功能
💻 JAVA
字号:
package com.test.bbs.web.action;

import java.util.Date;

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

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

import com.test.bbs.domain.Reply;
import com.test.bbs.domain.Subject;
import com.test.bbs.domain.User;
import com.test.bbs.service.ArticleService;
import com.test.bbs.service.impl.Page;

public class ArticleAction extends DispatchAction {
	//修改帖子信息
	public ActionForward del(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		this.checkLogin(request);
		
		String s = request.getParameter("id");
		Integer id = Integer.parseInt(s);
		String type = request.getParameter("type");
		if ("subject".equals(type)) {
			this.getArticleService().delSubject(this.getLoginUser(request), id);
			response.sendRedirect("/bbs/Index.do");
			return null;
		}
		if ("reply".equals(type)) {
			Reply reply = this.getArticleService().delReply(
					this.getLoginUser(request), id);
			response.sendRedirect("/bbs/Article.do?m=show&id="
					+ reply.getSubject().getId());
			return null;
		}
		throw new ServletException("参数'" + type + "'不能识别");
	}
	//回复帖子
	public ActionForward reply(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		this.checkLogin(request);

		String s = request.getParameter("subjectId");
		Integer id = Integer.parseInt(s);
		Subject subject = this.getArticleService().getSubject(id);
		Reply reply = new Reply();
		reply.setAuthor(this.getLoginUser(request));
		reply.setContent(request.getParameter("content"));
		reply.setIssueDate(new Date());
		reply.setSubject(subject);
		this.getArticleService().addReply(reply);
		response.sendRedirect("/bbs/Article.do?m=show&id=" + id);
		return null;
	}
	//
	public ActionForward show(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		String s = request.getParameter("id");
		Integer id = Integer.parseInt(s);
		Subject subject = this.getArticleService().getSubject(id);
		request.setAttribute("subject", subject);

		int pageNo = 1;
		s = request.getParameter("pageNo");
		if (s != null && s.length() > 0)
			pageNo = Integer.parseInt(s);

		int pageSize = 10;
		s = request.getParameter("pageSize");
		if (s != null && s.length() > 0)
			pageSize = Integer.parseInt(s);

		Page page = this.getArticleService().getPage(subject, pageNo, pageSize);
		request.setAttribute("page", page);
		return mapping.findForward("show");
	}
	//发帖子
	public ActionForward subject(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		this.checkLogin(request);
		String a = request.getParameter("a");
		if ("exe".equals(a)) {
			Subject subject = new Subject();
			subject.setAuthor(this.getLoginUser(request));
			subject.setContent(request.getParameter("content"));
			subject.setIssueDate(new Date());
			subject.setReplyCount(0);
			subject.setReplyDate(new Date());
			subject.setTitle(request.getParameter("title"));
			this.getArticleService().addSubject(subject);
			response.sendRedirect("/bbs/Article.do?m=show&id="
					+ subject.getId());
			return null;
		}
		return mapping.findForward("subject");
	}
	
	private void checkLogin(HttpServletRequest request) throws ServletException {
		User user = this.getLoginUser(request);
		if (user == null)
			throw new ServletException("请登陆");
	}

	private User getLoginUser(HttpServletRequest request) {
		HttpSession session = request.getSession(false);
		User user = null;
		if (session != null)
			user = (User) session.getAttribute("login_user");
		return user;
	}

	private ArticleService getArticleService() {
		return (ArticleService) this.getServlet().getServletContext()
				.getAttribute(ArticleService.class.getName());
	}
}

⌨️ 快捷键说明

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