
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...
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.



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.