Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Java

This branch is 1 commit ahead, 282 commits behind aerogear:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
src
.gitignore
LICENSE.txt
README.md
pom.xml

README.md

aerogear-controller-demo - very lean mvc controller

how to create a new project

basic use case

  1. add the maven dependency

    <dependency>
        <groupId>org.jboss.aerogear</groupId>
        <artifactId>aerogear-controller</artifactId>
        <version>1.0.0.Alpha</version>
        <scope>compile</scope>
    </dependency>
    
  2. create a pojo controller

    public class Home {
        public void index() {
        }
    }
    
  3. create a Java class containing the routes (must extend AbstractRoutingModule)

    public class Routes extends AbstractRoutingModule {
    
    @Override
    public void configuration() {
        route()
                .from("/")
                .on(RequestMethod.GET)
                .to(Home.class).index();
        }
    }
    
  4. create a jsp page at /WEB-INF/pages/<Controller Class Name>/<method>.jsp

    <!-- /WEB-INF/pages/Home/index.jsp -->
    <html>
        <body>
            <p>hello from index!</p>
        </body>
    </html>
    

parameter population

You can use immutable beans straight away as controller parameters:

    public class Store {
        public Car save(Car car) {
            return car;
        }
    }

This can be populated by putting a route to it (preferrably via post, of course)

    route()
        .from("/cars")
        .on(RequestMethod.POST)
        .to(Store.class).save(param(Car.class));

And you can use a simple html form for it, by just following the convention:

        <input type="text" name="car.color"/>
        <input type="text" name="car.brand"/>

The car object will be automatically populated with the provided values - note that it supports deep linking, so this would work fine too:

        <input type="text" name="car.brand.owner"/>

All the intermediate objects are created automatically.

Something went wrong with that request. Please try again.