PATH Documentation > WebObjects

Table of Contents

WOComponentContent



Element Description

WOComponentContent allows you to write nested components as HTML container elements: elements that can include text and other elements between their opening and closing tags. Using WOComponentContent you can, for example, write a component that defines the header and footer for all of your application's pages.

The WOComponentContent dynamic element doesn't have any attributes. It's simply a marker that specifies where the contents wrapped by the component's <WEBOBJECT> tag should go.




Synopsis

WOComponentContent { };

Example

To write a component that defines the header and footer for some or all of your application's pages, first define a component with HTML similar to the following:

<HTML>
    <HEAD>
        <TITLE>Cool WebObjects App</TITLE>
    </HEAD>
    <BODY>
    <!-- A banner common to all pages here -->
    <!-- Start of content defined by the parent element -->
    <WEBOBJECT name=ParentContent></WEBOBJECT>
    <!-- End of content defined by the parent element -->
    <!-- Put a footer common to all pages here. -->
    </BODY>
</HTML>

The <WEBOBJECT> element above is a WOComponentContent element declared like this:

ParentContent : WOComponentContent {};

To use this component, wrap the contents of all of your other components with a <WEBOBJECT> tag that specifies the component defined above. For example, suppose you named the above component HeaderFooterPage.wo. You could use it in another component like this:

<!-- HTML for a simple component wrapped with HeaderFooterPage -->
<WEBOBJECT name = templateWrapperElement>
    <P>Hello, world!</P>
</WEBOBJECT>

Where templateWrapperElement is declared in the .wod file like this:

templateWrapperElement : HeaderFooterPage {};

At runtime, the contents wrapped by templateWrapperElement are substituted for the WOComponentContent definition. As a result, the HTML generated for this component would be:

<HTML>
    <HEAD>
        <TITLE>Cool WebObjects App</TITLE>
    </HEAD>
    <BODY>
    <!-- A banner common to all pages here -->
    <!-- Start of content defined by the parent element -->
    <P>Hello, world!</P>
    <!-- End of content defined by the parent element -->
    <!-- Put a footer common to all pages here. -->
    </BODY>
</HTML>


Table of Contents
You can only have one WOComponentContent element in a given component.