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

📄 atom.jsp

📁 wiki建站资源 java编写的 很好用
💻 JSP
字号:
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="<%=wiki.getBaseURL()%>atom.css" type="text/css"?><%@ page import="java.util.*"%><%@ page import="com.ecyrd.jspwiki.*" %><%@ page import="org.apache.log4j.*" %><%@ page import="java.text.*" %><%@ page import="com.ecyrd.jspwiki.rss.*" %><%@ page import="com.ecyrd.jspwiki.util.*" %><%!    public void jspInit()    {        wiki = WikiEngine.getInstance( getServletConfig() );    }    Category log = Category.getInstance("JSPWiki");    WikiEngine wiki;    private String getFormattedDate( Date d )    {        Calendar cal = Calendar.getInstance();        SimpleDateFormat iso8601fmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");        cal.setTime( d );        cal.add( Calendar.MILLISECOND,                  - (cal.get( Calendar.ZONE_OFFSET ) +                     (cal.getTimeZone().inDaylightTime( d ) ? cal.get( Calendar.DST_OFFSET ) : 0 )) );        return iso8601fmt.format( cal.getTime() );    }%><%    WikiContext wikiContext = wiki.createContext( request, "rss" );    WikiPage    wikipage    = wikiContext.getPage();        if( wiki.getBaseURL().length() == 0 )    {        response.sendError( 500, "The jspwiki.baseURL property has not been defined for this wiki - cannot generate Atom feed" );        return;    }    NDC.push( wiki.getApplicationName()+":"+wikipage.getName() );        //    //  Force the TranslatorReader to output absolute URLs    //  regardless of the current settings.    //    wikiContext.setVariable( WikiEngine.PROP_REFSTYLE, "absolute" );    response.setContentType("text/xml; charset=UTF-8" );    StringBuffer result = new StringBuffer();    SimpleDateFormat iso8601fmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");    Properties properties = wiki.getWikiProperties();    String channelDescription, channelLanguage;        try    {        channelDescription = WikiEngine.getRequiredProperty( properties, RSSGenerator.PROP_CHANNEL_DESCRIPTION );        channelLanguage    = WikiEngine.getRequiredProperty( properties, RSSGenerator.PROP_CHANNEL_LANGUAGE );    }    catch( NoRequiredPropertyException e )    {        throw new JspException("Did not find a required property!");    }    //    //  Now, list items.    //    com.ecyrd.jspwiki.plugin.WeblogPlugin plug = new com.ecyrd.jspwiki.plugin.WeblogPlugin();    List changed = plug.findBlogEntries(wiki.getPageManager(),                                         wikipage.getName(),                                        new Date(0L),                                        new Date());    Collections.sort( changed, new PageTimeComparator() );    //    //  Check if nothing has changed, so we can just return a 304    //    boolean hasChanged = false;    Date    latest     = new Date(0);    for( Iterator i = changed.iterator(); i.hasNext(); )    {        WikiPage p = (WikiPage) i.next();        if( !HttpUtil.checkFor304( request, p ) ) hasChanged = true;        if( p.getLastModified().after( latest ) ) latest = p.getLastModified();    }    if( !hasChanged )    {        response.sendError( HttpServletResponse.SC_NOT_MODIFIED );        return;    }    response.addDateHeader("Last-Modified",latest.getTime());%><feed version="0.3" xmlns="http://purl.org/atom/ns#" xml:lang="<%=wiki.getContentEncoding()%>">  <title mode="escaped" type="text/html"><%=wiki.getApplicationName()%></title>  <%--<tagline>FIXME: We support no subtitles here</tagline> --%>  <link rel="alternate" href="<%=wiki.getBaseURL()%>" title="<%=wiki.getApplicationName()%>" type="text/html"/><%    Date    blogmodified = new Date();    String  blogauthor   = "";    if( changed.size() > 0 )    {         blogmodified = ((WikiPage)changed.get(0)).getLastModified();        blogauthor   = ((WikiPage)changed.get(0)).getAuthor();    }%>  <modified><%=iso8601fmt.format(blogmodified)%></modified>  <author>     <name><%=blogauthor%></name>  </author>  <info mode="xml" type="text/html">      <div xmlns="http://www.w3.org/1999/xhtml">This is an Atom formatted XML site feed. It is intended to be viewed in a Newsreader or syndicated to another site.</div>  </info><%        int items = 0;        for( Iterator i = changed.iterator(); i.hasNext() && items < 15; items++ )        {            WikiPage p = (WikiPage) i.next();            String encodedName = wiki.encodeName(p.getName());            String url = wikiContext.getViewURL(p.getName());            out.println(" <entry>");            //            //  Title            //            out.println("  <title>");            String pageText = wiki.getText(p.getName());            String title = "";            int firstLine = pageText.indexOf('\n');            if( firstLine > 0 )            {                title = pageText.substring( 0, firstLine );            }                        if( title.trim().length() == 0 ) title = p.getName();            // Remove wiki formatting            while( title.startsWith("!") ) title = title.substring(1);            out.println( RSSGenerator.format(title) );            out.println("</title>");            //            //  Link element            //            out.println("<link rel=\"alternate\" type=\"text/html\" href=\""+url+"\"/>");            //            //  Description            //            out.println("<content type=\"text/html\" mode=\"escaped\" xml:base=\""+wiki.getBaseURL()+"\">");            out.print("<![CDATA[");            if( firstLine > 0 )            {                int maxlen = pageText.length();                // if( maxlen > 1000 ) maxlen = 1000; // Assume 112 bytes of growth.                if( maxlen > 0 )                {                    pageText = wiki.textToHTML( wikiContext,                                                 pageText.substring( firstLine+1,                                                                    maxlen ).trim() );                    out.print( pageText );                    // if( maxlen == 1000 ) out.print( "..." );                }                else                {                    out.print( RSSGenerator.format(title) );                }            }            else            {                out.print( RSSGenerator.format(title) );            }            out.print("]]>");            out.println("</content>");            //            //  Creation date.            //            out.print("<created>");            WikiPage firstversion = wiki.getPage(p.getName(),1);            out.print( getFormattedDate( firstversion.getLastModified() ) );            out.print("</created>\n");            //            //  Issued date.  JSPWiki does not support drafts, so we essentially output            //  the same date.            //            out.print("<issued>"+getFormattedDate(firstversion.getLastModified())+"</issued>\n");            //            //  Modification date.            //            out.print("<modified>");            out.print( getFormattedDate(p.getLastModified()) );            out.print("</modified>\n");            //            //  Author.            //            String author = p.getAuthor();            if( author == null ) author = "unknown";            out.println("  <author>");            out.println("   <name>"+author+"</name>");            /*            //  This may be useful later on, once I figure out which <link>-tag to use.            if( wiki.pageExists(author) )            {                out.println("<homepage>"+wikiContext.getViewURL(author)+"</homepage>");            }            */            out.println("  </author>\n");            //            //  Unique id.  FIXME: is not really a GUID.            //            out.println("<id>"+url+"</id>");            out.println(" </entry>\n");        }%></feed><%    NDC.pop();    NDC.remove();%>

⌨️ 快捷键说明

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