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

📄 replyaction.java

📁 野蔷薇论坛源码 java 自己看看吧。 学习用
💻 JAVA
字号:
/* 
 * Created on 2007-3-23
 * Last modified on 2007-8-23
 * Powered by YeQiangWei.com
 */
package com.yeqiangwei.club.controller.action;

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

import org.apache.log4j.Logger;

import com.yeqiangwei.club.service.topic.ReplyService;
import com.yeqiangwei.club.service.ServiceLocator;
import com.yeqiangwei.club.service.ServiceWrapper;
import com.yeqiangwei.club.service.model.ReContentModel;
import com.yeqiangwei.club.service.model.ReplyModel;
import com.yeqiangwei.club.service.model.UserModel;
import com.yeqiangwei.club.service.user.UserLogin;
import com.yeqiangwei.club.service.user.UserSettingsService;
import com.yeqiangwei.club.util.BeanUtils;
import com.yeqiangwei.club.util.MessageUtils;
import com.yeqiangwei.club.controller.form.TopicPostForm;
import com.yeqiangwei.club.controller.form.TopicTrashForm;
import com.yeqiangwei.club.controller.form.build.TopicPostBuild;
import com.yeqiangwei.club.controller.form.build.TopicTrashBuild;
import com.yeqiangwei.club.exception.ClubException;
import com.yeqiangwei.club.view.util.UrlUtils;
import com.yeqiangwei.util.HttpServletUtils;
import com.yeqiangwei.util.ParamUtils;
import com.yeqiangwei.util.StringHelper;
import com.yeqiangwei.util.Validator;

public class ReplyAction {
	
	private static final Logger logger = Logger.getLogger(ReplyAction.class);
	
	public void delete(HttpServletRequest request,HttpServletResponse response){
		
	}

	private String forwardUrl(String act, int topicId, int forumId){
		StringBuffer sb = new StringBuffer("/club/topicAdmin.jsp?forumId=");
		sb.append(forumId);
		sb.append("&topicId=");
		sb.append(topicId);
		sb.append("&act=");
		sb.append(act);
		return sb.toString();
	}
	
	public void trash(HttpServletRequest request,HttpServletResponse response){
		TopicTrashForm topicTrashForm = new TopicTrashBuild(request).building();
		try {
			this.getReplyService().trash(topicTrashForm);
			request.setAttribute("message",MessageUtils.getMessage("success"));
		} catch (ClubException e) {
			request.setAttribute("message",e.getMessage());
		}
		HttpServletUtils.forward(request,response,forwardUrl("trashreply",topicTrashForm.getTopicId(),topicTrashForm.getForumId()));
	}
	
	private void autoTitle(TopicPostForm topicPostForm){
		if(Validator.isEmpty(topicPostForm.getTitle())){
			String content = topicPostForm.getContent();
			content = StringHelper.substring(content,0,500,"");
			content = StringHelper.ubbPattern(content,"\\[(.*?)\\](.*?)\\[/(.*?)\\]","","");
			content = StringHelper.ubbPattern(content,"\\[(.*?)\\]","","");
			content = StringHelper.ubbPattern(content,"<(.*?)>","","");
			if(content.length()>0){
				content = content.replace("\r\n","{r-n}");
				if(content.startsWith("{r-n}")){
					content = StringHelper.substring(content,5,content);
				}
				int n = content.indexOf("{r-n}");
				if(n==-1||n>30){
					n = 30;
				}
				String str = StringHelper.substring(content,0,n,"");
				int i1 = str.length();
				int i2 = topicPostForm.getContent().length();
				if(i1==i2){
					topicPostForm.setContent("");
				}
				else if(!Validator.isEmpty(str)){
					str+="...";
				}
				topicPostForm.setTitle(str);
			}
		}
	}
	
	public void createOrUpdate(HttpServletRequest request,HttpServletResponse response, String act)
	{
		TopicPostForm topicPostForm = new TopicPostBuild(request).building();
		this.autoTitle(topicPostForm);
		if(Validator.isEmpty(topicPostForm.getTitle())&&Validator.isEmpty(topicPostForm.getContent()))
		{
			request.setAttribute("message",MessageUtils.getMessage("error_empty"));
			this.errorForward(request,response,topicPostForm);
			return;
		}
		else if(topicPostForm.getTitle().length()>100||topicPostForm.getContentLength()>50000){
			request.setAttribute("message",MessageUtils.getMessage("error_toolong"));
			this.errorForward(request,response,topicPostForm);
			return;
		}
		ReplyModel replyModel = null;
		ReContentModel reContentModel = null;
		UserModel userModel = UserLogin.getUserModel(request);
		try {
			if(act.equals("addreply")){
				replyModel = new ReplyModel();
				reContentModel = new ReContentModel();
				BeanUtils.copyProperties(replyModel,topicPostForm);
				BeanUtils.copyProperties(reContentModel,topicPostForm);
				replyModel.setReContentModel(reContentModel);
				replyModel.setUserModel(userModel); //from session online user
				replyModel.setSessionUserModel(UserLogin.getUserModel(request));
				this.getReplyService().create(replyModel);
			}else if(act.equals("editreply")){
				replyModel = this.getReplyService().findReplyAndContentById(topicPostForm.getReplyId());
				reContentModel = replyModel.getReContentModel();
				topicPostForm.setUserId(replyModel.getUserId());
				topicPostForm.setUserName(replyModel.getUserName());
				topicPostForm.setCreateDateTime(replyModel.getCreateDateTime());
				topicPostForm.setUserIp(replyModel.getUserIp());
				BeanUtils.copyProperties(replyModel,topicPostForm);
				BeanUtils.copyProperties(reContentModel,topicPostForm);
				replyModel.setReContentModel(reContentModel);
				replyModel.setUserModel(userModel);
				replyModel.setSessionUserModel(userModel);
				this.getReplyService().update(replyModel);
			}
			userModel = replyModel.getUserModel();
			if(!Validator.isEmpty(userModel)&&Validator.isEmpty(ParamUtils.<UserModel>getSessionObject(request,"User",null)))
			{
				UserLogin.setCookies(request,response,userModel,0);
			}
			topicPostForm.setTopicId(replyModel.getTopicId());
			topicPostForm.setReplyId(replyModel.getReplyId());
			request.setAttribute("TopicPostForm",topicPostForm);
			request.setAttribute("returnUrl",UrlUtils.getUrl(UrlUtils.TOPIC,topicPostForm.getTopicId(),topicPostForm.getForumId(),request));
			byte postForward = this.getUserSettingscService().getUserSettingsModel(userModel).getPostForward();
			StringBuffer sb = new StringBuffer();
			switch(postForward){
				case 1://返回版面
					sb.append(UrlUtils.getUrl(UrlUtils.FORUM,topicPostForm.getForumId(),0,request));
					HttpServletUtils.redirect(response,sb.toString());
					break;
				case 2://返回发表的主题
					sb.append(UrlUtils.getUrl(UrlUtils.TOPIC,topicPostForm.getTopicId(),replyModel.getForumId(),request));
					HttpServletUtils.redirect(response,sb.toString());
					break;
				default: //返回界面让用户选择
					sb.append("/club/posted.jsp?forumId=");
					sb.append(replyModel.getForumId());
					sb.append("&topicId=");
					sb.append(replyModel.getTopicId());
					sb.append("&replyId=");
					sb.append(replyModel.getReplyId());
					sb.append("&act=");
					sb.append(ParamUtils.getStringParameter(request,"act"));
					request.setAttribute("msg","success");
					HttpServletUtils.forward(request,response,sb.toString());
			}
		} catch (ClubException e) {
			logger.error(e.toString());
			request.setAttribute("message",e.getMessage());
			this.errorForward(request,response,topicPostForm);
		}
	}
	
	private void errorForward(HttpServletRequest request,HttpServletResponse response, TopicPostForm topicPostForm){
		request.setAttribute("TopicPostForm",topicPostForm);
		HttpServletUtils.forward(request,response,"/club/post.jsp");
	}
	
	public UserSettingsService getUserSettingscService() {
		return ServiceWrapper.<UserSettingsService>getSingletonInstance(ServiceLocator.USERSETTINGS);
	}

	public ReplyService getReplyService() {
		return ServiceWrapper.<ReplyService>getSingletonInstance(ServiceLocator.REPLY);
	}	
}

⌨️ 快捷键说明

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