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

📄 rootrsscontroller.java

📁 java写的blog
💻 JAVA
字号:
/*
 * Created on 2004-10-17
 * Author: Xuefeng, Copyright (C) 2004, Xuefeng.
 */
package org.crystalblog.web;

import java.io.PrintWriter;
import java.util.*;
import javax.servlet.http.*;

import org.crystalblog.domain.*;
import org.crystalblog.logic.Facade;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import com.rsslibj.elements.Channel;

/**
 * Rss feed. path=http://server:port/.../rss.c?accountId=###.
 * 
 * @author Xuefeng
 */
public class RootRssController implements Controller {

    private Facade facade;

    public void setFacade(Facade facade) { this.facade = facade; }

    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        // get accountId:
        int accountId = Integer.parseInt(request.getParameter("accountId"));
        Account account = facade.getAccount(accountId);
        // create rss:
        Channel channel = new Channel();
        channel.setDescription(account.getDescription());
        String baseUrl = request.getRequestURL().toString();
        int n = baseUrl.lastIndexOf("/");
        baseUrl = baseUrl.substring(0, n);
        channel.setLink(baseUrl + "/home.c?accountId=" + accountId);
        channel.setTitle(account.getTitle());
        List articles = facade.getArticles(accountId, account.getMaxPerPage(), 1);
        Iterator it = articles.iterator();
        while(it.hasNext()) {
            Article article = (Article)it.next();
            channel.addItem(baseUrl + "/article.c?articleId=" + article.getArticleId(),
                            article.getSummary(), article.getTitle()
                           );
        }
        // output xml:
        response.setContentType("text/xml");
        PrintWriter pw = response.getWriter();
        pw.print(channel.getFeed("rss"));
        pw.close();
        return null;
    }

}

⌨️ 快捷键说明

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