protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
IOException
{
PrintWriter out = resp.getWriter();
BloggingService service = JNDIHelper.getBloggingService();
String blogTitle = service.getBlogTitle();
// TODO cope with the service being null, redirect elsewhere.
HTMLOutput.writeHTMLHeaderPartOne(out, blogTitle);
HTMLOutput.writeDojoUses(out, "dojo.parser");
HTMLOutput.writeHTMLHeaderPartTwo(out);
int maxPage = (service.getNoOfEntries()-1) / POSTS_PER_PAGE;
int pageNoInt = 0;
String pageNo = req.getParameter("page");
if (pageNo != null) {
try {
pageNoInt = Integer.parseInt(pageNo)-1;
if (pageNoInt > maxPage)
pageNoInt = maxPage;
else if (pageNoInt < 0)
pageNoInt = 0;
} catch (NumberFormatException e) {
e.printStackTrace();
}
}
Iterator<? extends BlogEntry> posts = service.getBlogEntries(pageNoInt * POSTS_PER_PAGE, POSTS_PER_PAGE).iterator();
out.println("<div class=\"links\"><a href=\"CreateBlogEntryForm\">Create New Post</a> <a href=\"EditAuthorForm\">Create Author</a></div>");
Date currentDate = null;
for (int i = 0; posts.hasNext(); i++) {
BlogEntry post = posts.next();
if (doesNotMatch(post.getPublishDate(), currentDate)) {
currentDate = post.getPublishDate();
out.print("<div class=\"postDate\">");
//out.print(DateFormat.getDateInstance(DateFormat.FULL).format(currentDate));
if (currentDate != null) {
out.print(DateFormat.getDateInstance(DateFormat.FULL).format(currentDate));
}
out.println("</div>");
}
out.print("\t\t<div class=\"post\" id=\"");
out.print(i);
out.println("\">");
out.print("\t\t\t<div class=\"postTitle\">");
out.print(post.getTitle());
out.print("</div>");
out.print("\t\t\t<div class=\"postBody\">");
out.print(post.getBody());
out.println("</div>");
out.print("\t\t\t<div class=\"postAuthor\"><a href=\"ViewAuthor?email=");
out.print(post.getAuthorEmail());
out.print("\">");
out.print(post.getAuthor().getFullName());
out.println("</a></div>");
if (service.isCommentingAvailable()) {
out.print("<div class=\"links\"><a href=\"AddCommentForm?postId=");
out.print(post.getId());
out.print("\">Add Comment</a></div>");
List<? extends BlogComment> comments = service
.getCommentsForEntry(post);
int size = comments.size();
out.print("<div class=\"commentTitle\"");
if (size > 0) {
out.print("onclick=\"expand(");