Intégration d'une carte de layout
L'intégration d'une carte de layout utilise le fonctionnement standard des viewPreparers.
Définition d'un viewPreparer de carte
Le mécanisme s'appuie sur un viewModel qui étend AbstractCardViewModel
public class AcmeCardViewModel extends AbstractCardViewModel {
private String uuid;
private String subtitle;
...
}
et d'un preparer qui étend AbstractCardViewPreparer.
public class AcmeCardViewPreparer<V extends AcmeCardViewModel> extends AbstractCardViewPreparer<V> {
protected ServiceAcme serviceAcme;
...
@Override
public boolean accept(final FrontContext context) {
return super.accept(context) && CardContext.of(context).getCard() instanceof AcmeCardBean && ...;
}
@Override
public V prepare(final FrontContext context, final Map<String, List<IViewPreparer>> preparers) {
final V viewModel = super.prepare(context, preparers);
final AcmeCardBean card = CardContext.of(context).getCard();
...
}
Déclaration d'un viewPreparer de carte
Création d'un viewPreparer qui à pour parent abstractCardViewPreparer et déclare comme propriétés :
- type : card
- view : La jsp correspondant à la carte
<bean id="acmeCardViewPreparer" parent="abstractCardViewPreparer">
<property name="type" value="card"/>
<property name="view" value="/WEB-INF/jsp/layout/acme.jsp"/>
<property name="serviceAcme" value="serviceAcme"/>
...
</bean>