📄 replyaction.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 + -