All about Acornsnap

For users

Acornsnap 2(past version) was a Content Management System having functionalities of controlling approval flows. It is used at the websites of governmental and nongovernmental offices. It includes Struts 2.0 frameworks to build custom functionalities for each websites. But unfortunately, Struts is not easy to use for us. Struts has many XML files for settings, complicated tag library and few documents. This is the main reason for Acornsnap 3(this version) has supported building application along MVC. Acornsnap 3 must decrease the costs in development website.

For developers(API Guide)

AbstractController is a superclass for all controllers you will create in web applications. It provides several utility methods and fields for accessing the database and processing (http's)request and response. And public methods you define newly in a controller can be accessible via http. For example, if a contorller named 'Main' exists and has a method named 'index' as below, the url 'http://(hostname)/(appname)/action/main/index' can be accessible.

public class Main extends AbstractController{
  @Override
  public void index() throws Exception {
    request.setAttribute("title", "Welcome aboard!");
  }
}

ActiveRecord is a superclass for all models you will create in web application. But the subclasses are not written by the hand hardly at all. They are generated by the Code Generator(which is included an Eclipse plugin). Following is a sample of a subclass. It expresses a record(equivalent to a row) of the database table 'welcome_messages'. It has fields corresponding the table's fields(equivalent to columns). And then, you will be able to use several utilitiy methods for O/R mapping by this class.

public class WelcomeMessageRecord extends ActiveRecord{
  @jp.co.lumber_mill.database.PrimaryKey
  @jp.co.lumber_mill.database.NotNull
  public java.lang.Integer id;
 
  @jp.co.lumber_mill.database.NotNull
  public java.lang.String message;
 
 
  @Override
  public String getTableName() {
    return "welcome_messages";
  }
 
  @Override
  public String[] getNames() {
    return new String[]{"id","message"};
  }
}
  WelcomeMessageRecord wmr = new WelcomeMessageRecord();
  wmr.id = 0;
  find(wmr); // find method is defined in AbstractController. 
Managed by LumberMill, Inc.