+

Search Tips   |   Advanced Search

Obtaining a controller for working with resources


To modify, create, or delete portal resources using the Controller SPI, you first need to create a controller.

You do this using a JNDI based lookup for the correct "home" interfaces that is, the corresponding read-only interface.

The provider lookup for a controller home is possible from servlet level code and portlets.

The following controllers are available via JNDI:

The LayoutModelController cannot be obtained via a JNDI lookup. You obtain it through its associated ContentModelController.

Example - Obtaining a content model controller:

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);
}

To obtain a ContentModelController, you must pass an existing content model to the createContentModelController method of the ContentModelControllerProvider.

Example 2 - Obtaining a layout model controller for a specific page:

// locate the page for which 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);


Parent: Work with controllers
Related:
Committing and persisting the modifications
Obtaining a model from the portal