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

📄 viewforum.jsp

📁 非常完整的Java开发的网络办公系统
💻 JSP
字号:

<%
/**
 *	$RCSfile: viewForum.jsp,v $
 *	$Revision: 1.4 $
 *	$Date: 2000/12/27 22:39:45 $
 */
%>

<%@ page 
	import="java.util.*,
	        java.text.*,
	        java.net.*,
			com.coolservlets.forum.*,
			com.coolservlets.forum.util.*"
	errorPage="/mainctrl/bbs/error"
%>

<%!	// Global variables
	//final SimpleDateFormat formatter = new SimpleDateFormat( "EE, MMM d" );
	final SimpleDateFormat formatter = new SimpleDateFormat( "yyyy.MM.dd h:mm a" );
	final SimpleDateFormat timeFormatter = new SimpleDateFormat( "h:mm a" );
	final SimpleDateFormat dayFormatter = new SimpleDateFormat( "yyyy.MM.dd" );
	final long ONE_DAY = 1000L * 60 * 60 * 24;
	final long ONE_WEEK = ONE_DAY * 7;
	final int DEFAULT_MSG_RANGE = 15;
	
	// Method to print one line on the thread table
	private String displayMessage(int forumID, ForumThread thread, ForumMessage message, String forumParams, long now, long lastVisited) {
		StringBuffer buf = new StringBuffer();
		if( message != null ) {
			Date messageDate = thread.getModifiedDate();
			long messageDateMS = messageDate.getTime(); 
			String subject = message.getSubject();
			int messageID = message.getID();
			String username = null;

			if( !message.isAnonymous() ) {
				User user = message.getUser();
				username = user.getName();
				if (username == null)
				    username = user.getUsername();
			}
			if (username == null)
			    username = "匿名者";
			int threadID = thread.getID();
			int numReplies = thread.getMessageCount()-1;
			
			if( subject == null || subject.equals("") ) {
				subject = "[无主题]";
			}
			String dateText = "";
			
			//if (messageDateMS >= (now - 2 * ONE_DAY)) {
				//dateText = SkinUtils.dateToText(messageDate);
			//}
			//else {
				dateText = formatter.format(messageDate);
			//}

			// new flag
			buf.append("<td width='1%'>");
			buf.append(messageDateMS > lastVisited ? "<img src=\"/skins/bay/images/new.gif\">" : "&nbsp;");
			buf.append("</td>");

			// subject cell
			buf.append("<td width='96%'><font face='verdana' >");
			buf.append("<a href='/mainctrl/bbs/viewMessage?message=").append(messageID).append("&thread=");
			buf.append(threadID).append("&forum=").append(forumID);
			if (forumParams.length() > 0)
				buf.append("&forumparams=").append(forumParams);
			buf.append("'><font class=strong>").append(subject);
			buf.append("</font></a>");
			//buf.append("&nbsp;[").append(numReplies).append("]");
			buf.append("</font></td>").append("\n");

			// replies cell
			buf.append("<td width='1%' align='center'>");
			buf.append("<font color='#666666' face='verdana' >");
			buf.append("[");
			buf.append("<a href='/mainctrl/bbs/viewMessage?message=").append(messageID).append("&thread=");
			buf.append(threadID).append("&forum=").append(forumID);
			if (forumParams.length() > 0)
				buf.append("&forumparams=").append(forumParams);			
			buf.append("'><font class=strong>").append(numReplies);
			buf.append("</font></a>");
			buf.append("]");
			buf.append("</font></td>");
			
			// username cell
			buf.append("<td width='1%' nowrap align='center'>");
			buf.append("<font color='#666666' face='verdana' >");
			buf.append(username);
			buf.append("</font></td>");
			
			// date cell
			if( messageDateMS >= (now-ONE_WEEK) ) {
				buf.append("<td width='1%' nowrap class='dateTimeListToday' align='center'>");
			} else { 
				buf.append("<td width='1%' nowrap class='dateTimeList' align='center'>");
			}
			buf.append("<font face='verdana' >");
			buf.append( dateText );
			buf.append("</font></font>");
			buf.append("</td>").append("\n");

		}
		return buf.toString();
    }
%>

<%	////////////////////////
	// Authorization check
	
	// check for the existence of an authorization token
	Authorization authToken = SkinUtils.getUserAuthorization(request,response);
	
	// if the token was null, they're not authorized. Since this skin will
	// allow guests to view forums, we'll set a "guest" authentication
	// token
	if( authToken == null ) {
		authToken = AuthorizationFactory.getAnonymousAuthorization();
	}
%>

<%	// get parameters
	int 	forumID = 	ParamUtils.getIntParameter(request, "forum", -1);
	int 	range = 	ParamUtils.getIntParameter(request, "range", DEFAULT_MSG_RANGE);
	int 	start = 	ParamUtils.getIntParameter(request, "start", 0);
	long	lastVisited = SkinUtils.getLastVisited(request, response);
	String	startParam =  (start == 0) ? "" : "&start=" + start;
	String	rangeParam =  (range == DEFAULT_MSG_RANGE) ? "" : "&range=" + range;
%>

<%	ForumThread thread = null;
	Forum forum = null;
	ForumFactory forumFactory = ForumFactory.getInstance(authToken);
	try {
		forum = forumFactory.getForum(forumID); // throws ForumNotFoundException
	}
	catch( UnauthorizedException ue ) {
		response.sendRedirect( "/mainctrl/bbs/error?message=" + URLEncoder.encode("您没有权限访问此论坛!") );
		return;
	}
	catch( ForumNotFoundException fnfe ) {
		response.sendRedirect( "/mainctrl/bbs/error?message=" + URLEncoder.encode("此论坛不存在!") );
		return;
	}

	String 	 forumName = forum.getName();
	Iterator forumIterator = forumFactory.forums();
%>

<%	/////////////////
	// header include
	
	String title = forumName;
%>
<%@	include file="/skins/bay/header.jsp" %>

<%-- begin breadcrumbs --%>
<form>
<table bgcolor="#666666" cellpadding=0 cellspacing=0 border=0 width="100%"> 
<tr>
    <td>
        <font class="strongw"><a href="/mainctrl/home/index"><font color="#FFFFFF">首页</font></a>&gt;&gt;<a href="/mainctrl/communication/main"><font color="#FFFFFF">通信</font></a>&gt;&gt;<a href="/mainctrl/bbs/index"><font color="#FFFFFF">论坛主页</font></a>
        &gt;&gt;</font>
        <font class="strong">
        <select name="forumName" size=1 class="text" onchange="location=this.options[this.selectedIndex].value;">
        <option value="" selected><%= forumName %>
        <option value="/mainctrl/bbs/viewForum?forum=<%= forumID %>">---------------------------
        <%	while (forumIterator.hasNext()) {
                Forum tmpForum = (Forum)forumIterator.next();
                String name = tmpForum.getName();
                String location = "/mainctrl/bbs/viewForum?forum=" + tmpForum.getID();
        %>
                <option value="<%= location %>">&gt;&gt; <%= name %>
        <%	}
        %>
        </select>
        </font>
    </td>
</tr>
</table>
</form>
<%-- end breadcrubms --%>
		<div align="center"><a href="/mainctrl/bbs/post?forum=<%= forumID %>" class="normal"><img src="/skins/bay/images/newthread.gif" width=106 height=23 border="0"></a><br></div>

<%	Iterator it = forum.threads(start,range);
	if( !it.hasNext() ) {
%>
		<ul>
		<font face="verdana" ><font class="strong">
		此论坛中没有帖子。
		</font><br>
		</font>
		</ul>
		
<%	} else { %>

	<table bgcolor="#999999" cellpadding=0 cellspacing=0 border=0 width="100%">
	<td>
	<table bgcolor="#999999" cellpadding=3 cellspacing=1 border=0 width="100%">
	<tr bgcolor="#dddddd">
		<td width="1%"> &nbsp; </td>
		<td align="center" width="96%"><font class="strong">主题</font></td>
		<td align="center" width="1%" nowrap><font class="strong">回复</font></td>
		<td align="center" width="1%" nowrap><font class="strong">作者</font></td>
		<td align="center" width="1%" nowrap><img src="/skins/bay/images/arrow-up.gif" width=8 height=7 border=0 hspace=6><font class="strong">时间</font></td>
	</tr>
<%		long now = (new java.util.Date()).getTime();
		ForumMessage root =  null;
		int rowColor = 0;
		String bgcolor = "";
		String forumParams = URLEncoder.encode(startParam + rangeParam);
		int numThreadInForum = forum.getThreadCount();
		
		while(it.hasNext()) {
			rowColor++;
			thread = (ForumThread)it.next();
			root = thread.getRootMessage();
			if( rowColor%2 == 0 ) {
				bgcolor = "#ffffff";
			} else {
				bgcolor = "#eeeeee";
			}
%>
			<tr bgcolor="<%= bgcolor %>">
			<%= displayMessage(forumID, thread, root, forumParams, now, lastVisited) %>
			</tr>
<%		} %>
	</table>
	</td>
	</table>
    <table cellpadding=0 height=26 cellspacing=0 border=0 width="100%" bgcolor="#fafafa">
		<td width="1%" nowrap>
			<font face="verdana,arial">
			<%	if( (start-range) >= 0 ) { %>
				<a href="/mainctrl/bbs/viewForum?forum=<%= forumID %><%= rangeParam %>&start=<%= (start-range) %>"><font class="strong">&lt;&lt;</font>前<%= range %>帖子</a>
			<%	} %>
			</font>
		</td>
		<td width="98%" nowrap>
		
		</td>
		<td width="1%" nowrap>
			<font face="verdana,arial">
			<%	if( (range+start) < numThreadInForum ) { %>
				<a href="/mainctrl/bbs/viewForum?forum=<%= forumID %><%= rangeParam %>&start=<%= (start+range) %>">后<%= (((numThreadInForum-range)<=range)?(numThreadInForum-range):range) %>帖子 <font class="strong">&gt;&gt;</font></a>
			<%	} %>
			</font>
		</td>
		</table>
	
<%	} %>

<%@	include file="/skins/bay/footer.jsp" %>

⌨️ 快捷键说明

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