The best way I can describe it, is that it kind of gives you multiple inheritance at your controller level for your interceptors. Interceptors being the @Before, @After annotations.
You could therefore
- define a controller that dealt with your secure area
@Before annotations - define a controller that dealt with injecting your static data for shared actions using
@Before
you could then define a controller or controllers that contained all your actions, and use the @With annotation to make use of the two controllers described above. It means you can separate your code out cleanly, and not have to rely on inheritance to execute the @Before annotations.