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

📄 edit.jsp

📁 wiki建站资源 java编写的 很好用
💻 JSP
字号:
<%@ page import="org.apache.log4j.*" %><%@ page import="com.ecyrd.jspwiki.*" %><%@ page import="com.ecyrd.jspwiki.filters.*" %><%@ page import="java.util.*" %><%@ page import="com.ecyrd.jspwiki.tags.WikiTagBase" %><%@ page import="com.ecyrd.jspwiki.tags.EditorAreaTag" %><%@ page import="com.ecyrd.jspwiki.auth.AuthorizationManager" %><%@ page import="com.ecyrd.jspwiki.auth.UserProfile" %><%@ page import="com.ecyrd.jspwiki.auth.permissions.WikiPermission" %><%@ page import="com.ecyrd.jspwiki.auth.permissions.EditPermission" %><%@ page import="com.ecyrd.jspwiki.auth.permissions.CreatePermission" %><%@ page import="com.ecyrd.jspwiki.htmltowiki.HtmlStringToWikiTranslator" %><%@ page errorPage="/Error.jsp" %><%@ taglib uri="/WEB-INF/jspwiki.tld" prefix="wiki" %><%!     public void jspInit()    {        wiki = WikiEngine.getInstance( getServletConfig() );    }    Category log = Category.getInstance("JSPWiki");    WikiEngine wiki;%><%    String action  = request.getParameter("action");    String ok      = request.getParameter("ok");    String preview = request.getParameter("preview");    String cancel  = request.getParameter("cancel");    String append  = request.getParameter("append");    String edit    = request.getParameter("edit");    String author  = wiki.safeGetParameter( request, "author" );    String text    = wiki.safeGetParameter( request, EditorAreaTag.AREA_NAME );    //    //  Create context and continue    //    WikiContext wikiContext = wiki.createContext( request,                                                   WikiContext.EDIT );    String pagereq = wikiContext.getPage().getName();    NDC.push( wiki.getApplicationName()+":"+pagereq );        //    //  WYSIWYG editor sends us its greetings    //    String htmlText = wiki.safeGetParameter( request, "htmlPageText" );    if( htmlText != null && cancel == null )     {        text = new HtmlStringToWikiTranslator().translate(htmlText,wikiContext);    }    WikiPage wikipage = wikiContext.getPage();    WikiPermission requiredPermission = null;    WikiPage latestversion = wiki.getPage( pagereq );    if( latestversion == null )    {        latestversion = wikiContext.getPage();    }    if( wiki.pageExists( wikipage ) )    {        requiredPermission = new EditPermission();    }    else    {        requiredPermission = new CreatePermission();    }       AuthorizationManager mgr = wiki.getAuthorizationManager();    UserProfile currentUser  = wikiContext.getCurrentUser();    if( !mgr.checkPermission(  wikiContext.getPage(),                               currentUser,                               requiredPermission ) )    {        log.info("User "+currentUser.getName()+" has no access - redirecting to login page.");        String msg = "You do not seem to have the permissions for this operation. Would you like to login as another user?";        wikiContext.setVariable( "msg", msg );        String pageurl = wiki.encodeName( pagereq );        response.sendRedirect( wiki.getBaseURL()+"Login.jsp?page="+pageurl );        return;    }    pageContext.setAttribute( WikiTagBase.ATTR_CONTEXT,                              wikiContext,                              PageContext.REQUEST_SCOPE );    //    //  Set the response type before we branch.    //    response.setContentType("text/html; charset="+wiki.getContentEncoding() );    response.setHeader( "Cache-control", "max-age=0" );    response.setDateHeader( "Expires", new Date().getTime() );    response.setDateHeader( "Last-Modified", new Date().getTime() );    //log.debug("Request character encoding="+request.getCharacterEncoding());    //log.debug("Request content type+"+request.getContentType());    log.debug("preview="+preview+", ok="+ok);    if( ok != null )    {        log.info("Saving page "+pagereq+". User="+request.getRemoteUser()+", host="+request.getRemoteAddr() );        //  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 = latestversion.getLastModified();        if( change != null && change.getTime() != pagedate )        {            //            // Someone changed the page while we were editing it!            //            log.info("Page changed, warning user.");            pageContext.forward( "PageModified.jsp" );            return;        }        //        //  We expire ALL locks at this moment, simply because someone has        //  already broken it.        //        PageLock lock = wiki.getPageManager().getCurrentLock( wikipage );        wiki.getPageManager().unlockPage( lock );        session.removeAttribute( "lock-"+pagereq );        //        //  Set author information        //        wikiContext.getPage().setAuthor( currentUser.getName() );                //        //  Figure out the actual page text        //        if( text == null )        {            throw new ServletException( "No parameter text set!" );        }        //        //  If this is an append, then we just append it to the page.        //  If it is a full edit, then we will replace the previous contents.        //        try        {            if( append != null )            {                StringBuffer pageText = new StringBuffer(wiki.getText( pagereq ));                pageText.append( text );                wiki.saveText( wikiContext, pageText.toString() );            }            else            {                wiki.saveText( wikiContext, text );            }        }        catch( RedirectException ex )        {            session.setAttribute("msg", ex.getMessage());            response.sendRedirect( ex.getRedirect() );            return;        }        response.sendRedirect(wiki.getViewURL(pagereq));        return;    }    else if( preview != null )    {        log.debug("Previewing "+pagereq);        pageContext.forward( "Preview.jsp" );    }    else if( cancel != null )    {        log.debug("Cancelled editing "+pagereq);        PageLock lock = (PageLock) session.getAttribute( "lock-"+pagereq );        if( lock != null )        {            wiki.getPageManager().unlockPage( lock );            session.removeAttribute( "lock-"+pagereq );        }        response.sendRedirect( wiki.getViewURL(pagereq) );        return;    }    log.info("Editing page "+pagereq+". User="+request.getRemoteUser()+", host="+request.getRemoteAddr() );    //    //  Determine and store the date the latest version was changed.  Since    //  the newest version is the one that is changed, we need to track    //  that instead of the edited version.    //    long lastchange = 0;        Date d = latestversion.getLastModified();    if( d != null ) lastchange = d.getTime();    pageContext.setAttribute( "lastchange",                              Long.toString( lastchange ),                              PageContext.REQUEST_SCOPE );    //    //  Attempt to lock the page.    //    PageLock lock = wiki.getPageManager().lockPage( wikipage,                                                     currentUser.getName() );    if( lock != null )    {        session.setAttribute( "lock-"+pagereq, lock );    }    String contentPage = wiki.getTemplateManager().findJSP( pageContext,                                                            wikiContext.getTemplate(),                                                            "EditTemplate.jsp" );%><wiki:Include page="<%=contentPage%>" /><%    NDC.pop();    NDC.remove();%>

⌨️ 快捷键说明

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