Modifier le fichier

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>