public String doView(RenderRequest request, RenderResponse response) throws Exception { // The JSP to show upon success String defaultView = VIEW_PAGE; String ctx = request.getContextPath(); // Determine the project container to use Project project = findProject(request); // Check the user's permissions User user = getUser(request); if (!ProjectUtils.hasAccess(project.getId(), user, "project-discussion-topics-view")) { throw new PortletException("Unauthorized to view in this project"); } // Retrieve parameters int forumId = PortalUtils.getPageViewAsInt(request); String resetList = request.getParameter("resetList"); // Build a list of records Connection db = useConnection(request); // Paging will be used for remembering several list view settings if ("true".equals(resetList)) { // deletePagedListInfo(request, "projectIssuesInfo"); } PagedListInfo pagedListInfo = getPagedListInfo(request, PAGED_LIST_INFO); pagedListInfo.setLink(ctx + "/show/" + project.getUniqueId() + "/forum/" + forumId); if (pagedListInfo.getInitializationLevel() == PagedListInfo.LEVEL_INITIALIZED) { pagedListInfo.setColumnToSortBy("i.last_reply_date"); pagedListInfo.setSortOrder("desc"); } // Load the category info Forum forum = new Forum(db, forumId, project.getId()); request.setAttribute(FORUM, forum); PortalUtils.setGeneratedData(request, FORUM, forum); // Load the records TopicList topicList = new TopicList(); topicList.setProjectId(project.getId()); topicList.setCategoryId(forum.getId()); topicList.setPagedListInfo(pagedListInfo); topicList.buildList(db); request.setAttribute(TOPIC_LIST, topicList); // JSP view return defaultView; }