Obtention d'un contrôleur pour travailler avec des ressources
Pour modifier, créer ou supprimer des ressources de portail à l'aide de la SPI du contrôleur, vous devez d'abord créer un contrôleur.
Pourquoi et quand exécuter cette tâche
Pour ce faire, utilisez une recherche basée JNDI pour l'interface "home" correcte, à savoir l'interface en lecture seule correspondante.
Remarque : La recherche par le fournisseur d'un contrôleur home est possible depuis le code et les portlets au niveau du servlet.
Les contrôleurs suivants sont disponibles via JNDI :
- ContentModelController
- Pour obtenir un contrôleur ContentModelController, effectuez une recherche de la chaîne ContentModelControllerHome.CONTENT_MODEL_CONTROLLER_JNDI_NAME.
- PortletModelController
- Pour obtenir un contrôleur PortletModelController, effectuez une recherche de la chaîne PortletModelControllerHome.PORTLET_MODEL_CONTROLLER_JNDI_NAME.
Le contrôleur LayoutModelController ne peut pas être obtenu via une recherche JNDI. Vous l'obtenez via son contrôleur ContentModelController associé.
Exemple - Obtention d'un contrôleur de modèle de contenu :
ContentModelController result = null;
final Context ctx = new InitialContext();
final ContentModelControllerHome home = (ContentModelControllerHome)
ctx.lookup(ContentModelControllerHome.CONTENT_MODEL_CONTROLLER_JNDI_NAME);
if (home != null) {
result = home.getContentModelControllerProvider().createContentModelController(aContentModel);
}
Remarque : Pour obtenir un élément
ContentModelController, vous devez transmettre un modèle de contenu existant à la méthode createContentModelController de ContentModelControllerProvider. Exemple 2 - Obtention d'un contrôleur de modèle de présentation pour une page spécifique :
// locate the page for which you want to create a LayoutModelController
final Locator locator = cmController.getLocator();
final ContentPage page = (ContentPage) locator.findByUniqueName("MyPage");
// create a LayoutModelController
final LayoutModelController lmController = cmController.getLayoutModelController(page);