MVC and CDI
In before posts, we have already use @Inject
to inject CDI beans into the Controller class. In fact, MVC embraced CDI internally.
RedirectScoped
There is a new CDI compatible scope named RedirectScoped
introduced in MVC 1.0.
A bean annotated with @RedirectScoped
annotation can be transferred between two requests, conceptly, it is similar with JSF Flash.
The AlertMessage
is an example.
Declare a bean with
@RedirectScoped
annotation.Inject it into a Controller class.
Access the bean properties in the view via EL.
It is easy to understand the code snippets.
AlertMessage
is a RedirectScoped
bean, which means it is can be access in current request and the next request. It is named with CDI @Named
which indicates it can be accessed in view via EL by name flashMessage.
MVC Event
MVC defined a series of CDI compatible events, with which you can track the MVC request lifecycle.
MVC provides a MvcEvent
interface as the base of all events in MVC, there are several specific event implementations.
AfterControllerEvent
AfterProcessViewEvent
BeforeControllerEvent
BeforeProcessViewEvent
ControllerRedirectEvent
MVC itself will fire these events in the request processing progress, you can observe the events via CDI @Observes
.
Source codes
Clone the codes from my GitHub account.
Open the mvc project in NetBeans IDE.
Run it on Glassfish.
After it is deployed and running on Glassfish application server, navigate http://localhost:8080/ee8-mvc/mvc/tasks in browser.
Last updated