# apex:dynamicComponent

This tag acts as a placeholder for your dynamic Apex components. It has one required parameter—`componentValue`—which accepts the name of an Apex method that returns a dynamic component.

The following Visualforce components do not have dynamic Apex representations:

- `<apex:attribute>`
- `<apex:component>`
- `<apex:componentBody>`
- `<apex:composition>`
- `<apex:define>`
- `<apex:dynamicComponent>`
- `<apex:include>`
- `<apex:insert>`
- `<apex:param>`
- `<apex:variable>`

## Example

```apex
<apex:page controller="SimpleDynamicController">
    <apex:dynamicComponent componentValue="{!dynamicDetail}" />
</apex:page>

/* Controller */
public class SimpleDynamicController {

    public Component.Apex.Detail getDynamicDetail() {
        Component.Apex.Detail detail = new Component.Apex.Detail();
        detail.expressions.subject = '{!acct.OwnerId}';
        detail.relatedList = false;
        detail.title = false;
        return detail;
    }

    // Just return the first Account, for example purposes only
    public Account acct {
        get { return [SELECT Id, Name, OwnerId FROM Account LIMIT 1]; }
    }
}
```

## Attributes

| Attribute Name      | Attribute Type | Description                                                                                                                                   | Required? | API Version | Access |
| ------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ----------- | ------ |
| `componentValue`    | UIComponent    | Accepts the name of an Apex method that returns a dynamic Visualforce component.                                                              | Yes       | 22.0        |        |
| `id`                | String         | An identifier that allows the attribute to be referenced by other tags in the custom component definition.                                    |           | 22.0        | global |
| `invokeAfterAction` | Boolean        | A Boolean value that, when true, specifies that componentValue's Apex method is called after the page's or submit's action method is invoked. |           | 31.0        |        |
| `rendered`          | Boolean        | A Boolean value that specifies whether the component is rendered on the page. If not specified, this value defaults to true.                  |           | 22.0        |        |

**See Also**

- [Creating and Displaying Dynamic Components](/docs/platform/salesforce-pages-developers-guide/guide/pages-dynamic-vf-components-implementation.md)
