package com.laoer.bbscs.web.taglib;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.File;
import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
import java.sql.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.PageContext;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.struts2.components.Component;
import org.apache.struts2.views.jsp.IteratorStatus;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import com.laoer.bbscs.bean.Board;
import com.laoer.bbscs.bean.Forum;
import com.laoer.bbscs.bean.ForumBuy;
import com.laoer.bbscs.bean.UserInfoSimple;
import com.laoer.bbscs.bean.Vote;
import com.laoer.bbscs.comm.BBSCSUtil;
import com.laoer.bbscs.comm.Constant;
import com.laoer.bbscs.comm.Util;
import com.laoer.bbscs.service.Cache;
import com.laoer.bbscs.service.ForumService;
import com.laoer.bbscs.service.UserService;
import com.laoer.bbscs.service.VoteItemService;
import com.laoer.bbscs.service.VoteService;
import com.laoer.bbscs.service.config.ForumConfig;
import com.laoer.bbscs.service.config.SysConfig;
import com.laoer.bbscs.web.servlet.UserCookie;
import com.laoer.bbscs.web.servlet.UserSession;
import com.opensymphony.xwork2.util.ValueStack;
import com.opensymphony.xwork2.util.TextUtils;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class ForumComponent extends Component {
/**
* Logger for this class
*/
private static final Log logger = LogFactory.getLog(ForumComponent.class);
private PageContext pageContext;
private HttpServletRequest request;
private HttpServletResponse response;
private String forumValue = "";
private String boardValue = "%{board}";
private String itemClass = "font2";
private String inPagesValue = "%{inpages}";
private String currentPageValue = "%{page}";
private String currentActionValue = "%{action}";
private String tagIdValue = "%{tagId}";
private String type = "";
private String totalnumValue = "%{totalnum}";
protected String indexValue = "%{rowstatus}";
private WebApplicationContext wc = null;
public ForumComponent(ValueStack stack, PageContext pageContext, HttpServletRequest request,
HttpServletResponse response) {
super(stack);
this.pageContext = pageContext;
this.request = request;
this.response = response;
this.wc = WebApplicationContextUtils.getWebApplicationContext(pageContext.getServletContext());
}
@SuppressWarnings("unchecked")
public boolean start(Writer writer) {
boolean result = super.start(writer);
if (forumValue == null) {
forumValue = "top";
} else if (altSyntax()) {
if (forumValue.startsWith("%{") && forumValue.endsWith("}")) {
forumValue = forumValue.substring(2, forumValue.length() - 1);
}
}
if (boardValue == null) {
boardValue = "top";
} else if (altSyntax()) {
if (boardValue.startsWith("%{") && boardValue.endsWith("}")) {
boardValue = boardValue.substring(2, boardValue.length() - 1);
}
}
if (inPagesValue == null) {
inPagesValue = "top";
} else if (altSyntax()) {
if (inPagesValue.startsWith("%{") && inPagesValue.endsWith("}")) {
inPagesValue = inPagesValue.substring(2, inPagesValue.length() - 1);
}
}
if (currentPageValue == null) {
currentPageValue = "top";
} else if (altSyntax()) {
if (currentPageValue.startsWith("%{") && currentPageValue.endsWith("}")) {
currentPageValue = currentPageValue.substring(2, currentPageValue.length() - 1);
}
}
if (currentActionValue == null) {
currentActionValue = "top";
} else if (altSyntax()) {
if (currentActionValue.startsWith("%{") && currentActionValue.endsWith("}")) {
currentActionValue = currentActionValue.substring(2, currentActionValue.length() - 1);
}
}
if (tagIdValue == null) {
tagIdValue = "top";
} else if (altSyntax()) {
if (tagIdValue.startsWith("%{") && tagIdValue.endsWith("}")) {
tagIdValue = tagIdValue.substring(2, tagIdValue.length() - 1);
}
}
if (totalnumValue == null) {
totalnumValue = "top";
} else if (altSyntax()) {
if (totalnumValue.startsWith("%{") && totalnumValue.endsWith("}")) {
totalnumValue = totalnumValue.substring(2, totalnumValue.length() - 1);
}
}
if (indexValue == null) {
indexValue = "top";
} else if (altSyntax()) {
if (indexValue.startsWith("%{") && indexValue.endsWith("}")) {
indexValue = indexValue.substring(2, indexValue.length() - 1);
}
}
// WebApplicationContext wc =
// WebApplicationContextUtils.getWebApplicationContext(this.pageContext
// .getServletContext());
SysConfig sysConfig = (SysConfig) wc.getBean("sysConfig");
ResourceBundleMessageSource messageSource = (ResourceBundleMessageSource) wc.getBean("messageSource");
StringBuffer sb = new StringBuffer();
Object forumObj = this.getStack().findValue(forumValue);
if (forumObj == null) {
return result;
}
Forum f = (Forum) forumObj;
if (type.equalsIgnoreCase("floor")) {
int index = 0;
Object statusObj = this.getStack().findValue(indexValue);
if (statusObj != null) {
index = ((IteratorStatus) statusObj).getIndex();
}
int inpages = 1;
Object inpagesObj = this.getStack().findValue(inPagesValue);
if (inpagesObj != null) {
inpages = ((Integer) inpagesObj).intValue();
}
UserCookie uc = new UserCookie(request, response, sysConfig);
int perNum = this.getUserPostPerNum(uc.getPostPerNum(), sysConfig.getPostPerPage());
int floor = (inpages - 1) * perNum + index;
if (floor == 0) {
sb.append(messageSource.getMessage("forum.floor0", null, request.getLocale()));
} else {
sb.append(messageSource.getMessage("forum.floor1", new String[] { String.valueOf(floor) }, request
.getLocale()));
}
this.write(writer, sb.toString());
return result;
}
if (type.equalsIgnoreCase("face")) {
if (f.getFace() == 0) {
sb.append("<img src=\"");
sb.append(sysConfig.getPostDefFaceImg());
sb.append("\" align=\"absmiddle\"/>");
} else {
sb.append("<img src=\"images/");
sb.append(f.getFace());
sb.append(".gif\" align=\"absmiddle\"/>");
}
this.write(writer, sb.toString());
return result;
}
if (type.equalsIgnoreCase("title")) {
Object boardObj = this.getStack().findValue(this.boardValue);
int boardType = 3;
Board board = (Board) boardObj;
boardType = board.getBoardType();
Object forumCurrentPageObj = this.getStack().findValue(this.currentPageValue);
int fcpage = 1;
if (forumCurrentPageObj != null) {
fcpage = ((Integer) forumCurrentPageObj).intValue();
}
String fcaction = "index";
Object fcactionObj = this.getStack().findValue(this.currentActionValue);
if (fcactionObj != null) {
fcaction = (String) fcactionObj;
}
String tagId = "0";
Object tagIdObj = this.getStack().findValue(this.tagIdValue);
if (tagIdObj != null) {
tagId = (String) tagIdObj;
}
if (boardType == 2) {
if (board.getId().longValue() != f.getBoardID()) {
sb.append("[");
sb.append(f.getBoardName());
sb.append("] ");
}
}
if (!f.getTagID().equals("0") && tagId.equals("0")) {
sb.append("[");
sb.append(f.getTagName());
sb.append("] ");
}
if (f.getPostType() != 0) {
if (f.getPostType() == 1) {
sb.append(mes
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Spring+Struts+Hibernate框架BBS源码 (637个子文件)
checkboxlist.ftl 1KB
radiomap.ftl 1KB
checkboxlist.ftl 1KB
fielderror.ftl 1KB
regValidate.ftl 1KB
actionmessage.ftl 200B
actionerror.ftl 190B
ForumComponent.java 62KB
ForumServiceImp.java 58KB
JSONObject.java 41KB
Post.java 41KB
SysConfig.java 31KB
Util.java 30KB
JSONArray.java 29KB
ForumHibernateDAO.java 27KB
PostUpdate.java 26KB
AdminUserSearch.java 23KB
PostOpt.java 21KB
Test.java 20KB
IPSeeker.java 20KB
NoteAction.java 20KB
ForumService.java 19KB
BBSCSUtil.java 18KB
BoardServiceCacheImp.java 16KB
Page.java 16KB
UserLoginInterceptor.java 16KB
Read.java 16KB
UserCookie.java 14KB
JSONTokener.java 14KB
VotePost.java 13KB
XML.java 13KB
NotesHibernateDAO.java 13KB
AdminBoardSet.java 13KB
Login.java 12KB
ForumAction.java 12KB
ForumArchivesServiceImp.java 12KB
UserCookieNew.java 12KB
BoardInterceptor.java 11KB
NoteHibernateDAO.java 11KB
UserDetailSet.java 11KB
In.java 11KB
UserServiceImp.java 11KB
UserOnlineHibernateDAO.java 11KB
Constant.java 10KB
Forum.java 10KB
JSONWriter.java 10KB
ForumDAO.java 10KB
BoardHibernateDAO.java 10KB
Reg.java 10KB
TopicComponent.java 9KB
Refine.java 9KB
CDL.java 9KB
ForumManage.java 9KB
XMLTokener.java 9KB
FriendSet.java 9KB
UserInfo.java 8KB
CommendHibernateDAO.java 8KB
NoteServiceImp.java 8KB
UserOnlineInterceptor.java 8KB
ManageAdvance.java 8KB
UserConfigSet.java 8KB
AutoFilter.java 7KB
AdminPostSet.java 7KB
UserTopServiceImp.java 7KB
UserOnlineServiceImp.java 7KB
AdminBoardMasterSet.java 7KB
Rss.java 7KB
BookMarkAction.java 7KB
SubscibeSendTimerTask.java 7KB
Cookie.java 6KB
CommendServiceImp.java 6KB
UserPermissionInterceptor.java 6KB
AdminUgSet.java 6KB
AdminRole.java 6KB
BookMarksHibernateDAO.java 6KB
SplitStringList.java 6KB
SplitList.java 6KB
AdminDateTimeFormatSet.java 6KB
HTTP.java 6KB
UserSidCookie.java 6KB
SubscibesHibernateDAO.java 6KB
BookMarkHibernateDAO.java 6KB
AdminAttachSet.java 5KB
UserInfoInPost.java 5KB
FriendServiceImp.java 5KB
UserSession.java 5KB
FriendsHibernateDAO.java 5KB
UserInfoHibernateDAO.java 5KB
AdminCookiePassSet.java 5KB
SignSet.java 5KB
Board.java 5KB
AdminBoardUg.java 5KB
AdminBoardTag.java 5KB
SubscibeHibernateDAO.java 5KB
UserDetail.java 5KB
UserFace.java 5KB
LoginErrorServiceImp.java 5KB
FriendHibernateDAO.java 5KB
BoardSaveHibernateDAO.java 5KB
BoardPermissionServiceImp.java 5KB
共 637 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
- szrainstar2014-07-202008年的老代码 没有安装使用说明,不知道数据库怎么处理。有病毒---就是JSP内部包含个iframe,连接到病毒网页(已失效)。 没耐心去研究了,直接下载新的版本来学习。
runjia1987
- 粉丝: 1
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功