%@ page import="org.apache.log4j.*" %> <%@ page import="com.ecyrd.jspwiki.*" %> <%@ page import="java.util.Calendar,java.util.Date" %> <%! public void jspInit() { wiki = WikiEngine.getInstance( getServletConfig() ); } Category log = Category.getInstance("JSPWiki"); WikiEngine wiki; %> <% String pagereq = request.getParameter("page"); if( pagereq == null ) { throw new ServletException("No page defined"); } String action = request.getParameter("action"); if( action != null && action.equals("save") ) { log.info("Saving page "+pagereq); // FIXME: I am not entirely sure if the JSP page is the // best place to check for concurrent changes. It certainly // is the best place to show errors, though. long pagedate = Long.parseLong(request.getParameter("edittime")); Date change = wiki.pageLastChanged( pagereq ); if( change != null && change.getTime() != pagedate ) { // // Someone changed the page while we were editing it! // log.info("Page changed, warning user."); // FIXME: This is put into session, but it is probably // a better idea if it's stored in request, but since // the request can be long, we need to POST it. request.getSession().setAttribute("usertext",request.getParameter("text")); response.sendRedirect("PageModified.jsp?page="+pagereq); return; } wiki.saveText( pagereq, request.getParameter("text") ); response.sendRedirect("Wiki.jsp?page="+pagereq); return; } log.info("Editing page "+pagereq+". User="+request.getRemoteUser()+", host="+request.getRemoteHost() ); // // If the page does not exist, we'll get a null here. // long lastchange = 0; Date d = wiki.pageLastChanged( pagereq ); if( d != null ) lastchange = d.getTime(); %>
<%@ include file="LeftMenu.jsp" %> <%@ include file="LeftMenuFooter.jsp" %> |
Edit page <%=pagereq%> |