Struts works very well for transactional applications but can be
overly complex for a blog site main page. I found it was much simpler
to use a simple JavaBean which had methods for obtaining recent
blog entries, hot blog entries, etc. within a JSP page which uses
the Standard Taglib.

Please consider providing a default main page with roller which
uses this simpler technology. This will make it easer for those
who install Roller to customize the look of their roller website.

Attached is the JavaBean I wrote.

Here is some example JSP code which sets up to use roller blog
entries from the bean.

<%@ page session="false" language="java" errorPage="/error.jsp" 
contentType="text/html; charset=UTF-8" %><%@
taglib uri="http://java.sun.com/jstl/core"; prefix="c" %><%@
taglib uri="http://java.sun.com/jstl/fmt"; prefix="fmt" %><%@
taglib uri="http://www.rollerweblogger.org/tags"; prefix="roller" %>

<fmt:setBundle basename="ApplicationResources" />
<jsp:useBean id="blog" scope="request" class="org.lpmo.roller.BlogBean">
 <jsp:setProperty name="blog" property="maxRecentEntries" value="12"/>
 <jsp:setProperty name="blog" property="maxPopularWebsites" value="12"/>
</jsp:useBean>
<c:set var="recent" value="${blog.recentEntries}"/>
<c:set var="popularWebsites" value="${blog.popularWebsites}"/>

Thanks,

Glenn

/*
 * BlogBean.java
 *
 * JavaBean for aggregating blog and RSS feed posts.
 *
 * $Id$
 */

package org.lpmo.roller;

import java.util.Date;
import java.util.List;

/*
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
*/

import org.roller.model.Roller;
import org.roller.model.RollerFactory;
import org.roller.model.WeblogManager;

public class BlogBean {

    Integer maxPinnedEntries = new Integer(5);
    int maxPlanetEntries = 10;
    Integer maxRecentEntries = new Integer(10);
    int maxPopularWebsites = 10;

    public List getPinnedEntries() {
        List list = null;
        try {
            Roller roller = RollerFactory.getRoller();
            list = roller.getWeblogManager().getWeblogEntriesPinnedToMain(
                maxPinnedEntries); // maxEntries
        } catch (Exception e) {
            // mLogger.error(e);
            System.err.println(e.getMessage());
            e.printStackTrace();
        }   
        return list;
    }

    public List getPlanetEntries() {
        List list = null;
        try {
            Roller roller = RollerFactory.getRoller();
            list = roller.getPlanetManager().getAggregation(
                maxPlanetEntries); // maxEntries
        } catch (Exception e) {
            // mLogger.error(e);
            System.err.println(e.getMessage());
            e.printStackTrace();
        }
        return list;
    }

    public List getRecentEntries() {
        List list = null;
        try {
            Roller roller = RollerFactory.getRoller();
            list = roller.getWeblogManager().getWeblogEntries(
                null,                   // userName
                null,                   // startDate
                new Date(),             // endDate
                null,                   // catName
                WeblogManager.PUB_ONLY, // status
                maxRecentEntries); // maxEntries
        } catch (Exception e) {
            // mLogger.error(e);
            System.err.println(e.getMessage());
            e.printStackTrace();
        }
        return list;
    }

    public List getAllEntries() {
        List list = null;
        try {
            Roller roller = RollerFactory.getRoller();
            list = roller.getWeblogManager().getWeblogEntries(
                null,                   // userName
                null,                   // startDate
                null,                   // endDate
                null,                   // catName
                WeblogManager.PUB_ONLY, // status
                null); // maxEntries
        } catch (Exception e) {
            // mLogger.error(e);
            System.err.println(e.getMessage());
            e.printStackTrace();
        }
        return list;
    }

    public List getPopularWebsites() {
        List list = null;
        try {
            Roller roller = RollerFactory.getRoller();
            list = 
roller.getRefererManager().getDaysPopularWebsites(maxPopularWebsites);
        } catch (Exception e) {
            // mLogger.error(e);
            System.err.println(e.getMessage());
            e.printStackTrace();
        }
        return list;
    }

    public int getMaxPinnedEntries() {
        return maxPinnedEntries.intValue();
    }

    public void setMaxPinnedEntries(int num) {
        maxPinnedEntries = new Integer(num);
    }

    public int getMaxPlanetEntries() {
        return maxPlanetEntries;
    }

    public void setMaxPlanetEntries(int num) {
        maxPlanetEntries = num;
    }

    public int getMaxRecentEntries() {
        return maxRecentEntries.intValue();
    }

    public void setMaxRecentEntries(int num) {
        maxRecentEntries = new Integer(num);
    }

    public int getMaxPopularWebsites() {
        return maxPopularWebsites;
    }   
        
    public void setMaxPopularWebsites(int num) {
        maxPopularWebsites = num;
    }

}

Reply via email to