The Unbearable Lightness of Java

Madvoc madvoc logo

Madvoc is MVC framework that uses CoC and annotations in a pragmatic way to simplify web application development. It is easy to use, learning curve is small and it is easy to extend. There are no external (xml) configuration, actions are simple POJOs, it is compatible with any view technology, its pluggable and so on...

One minute tutorial

Simple POJO action:

@MadvocAction   
public class HelloAction {   
  
	@In
	String name;
	
	@Out
	String retv;
	
	@Action
	public String world() {
		System.out.println("HelloAction.world " + name;
		retv = " and Universe";
		return "ok";
	}
}

Above action class defines action method HelloAction#world() that is mapped to the following url: /hello.world.html. The resulting view for dispatching is: /hello.world.ok.jsp. Action takes one input request parameter (name) and prepares one request attribute for the output (retv). Action is also intercepted by default interceptor stack.

Action from above example uses only defaults; however, it can be configured in many, many ways.

Action lifecycle

action path
MadvocController
Interceptors
Action
Result

MadvocController receives HTTP request and lookup for ActionConfig (action configuration) for requested action path. If action path is registered, MadvocController instantiates new ActionRequest - encapsulation of action request and action method proxy.

Interceptors intercept the request being sent to and returning from the action. In some cases, interceptor might keep an action from executing. Interceptors can also change the state of an action before it executes.

Once execution of the action and all interceptors is complete, the action request is sent to result to render the results.