On 12/8/05, Mikael Andersson <[EMAIL PROTECTED]> wrote:
> Hi,
> testing some clay templating ( base code from some very helpful posts in this
> forum),
> and it seems like I must have a managed bean associated to every view.
> Is this correct?
>
> When running the code below without a managed bean I get an error, but if I
> declare one for it it works fine.
>
> The code I use:
> text.xml
> <view>
>    <component jsfid="/test.xml" extends="baseLayout">
>        <symbols>
>            <set name="title" value="Simple Test"/>
>            <set name="bodyContent" value="/pages/test.html"/>
>        </symbols>
>    </component>
> </view>
>
> component from clay-config.xml:
>    <component jsfid="baseLayout" extends="clay">
>        <attributes>
>            <set name="clayJsfid" value="/layout/layout.html"/>
>        </attributes>
>        <symbols>
>              <set name="title" value="Fasta"/>
>              <set name="navContent" value="/layout/defaultNav.html"/>
>              <set name="headerContent" value="/layout/defaultHeader.html"/>
>              <set name="bodyContent" value="/layout/defaultBody.html"/>
>              <set name="footerContent" value="/layout/defaultFooter.html"/>
>        </symbols>
>    </component>
>
> When running this without a managed bean called 'test' in faces-config.xml, I
> get the following error:
> ERROR
> (org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/estoolweb].
> [Faces
> Servlet]) - Servlet.service() for servlet Faces Servlet threw exception
> javax.faces.el.EvaluationException: Cannot get value for expression '#{test}'
> at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java
>
> Regards, Mikael
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


Mikael,


I think you could get it down to 1 managed-bean by doing this

<component jsfid="baseLayout" extends="clay">
       <attributes>
           <set name="clayJsfid" value="/layout/layout.html"/>
       </attributes>
       <symbols>
             <set name="managed-bean-name" value="layoutBean"/>

             <set name="title" value="Fasta"/>
             <set name="navContent" value="/layout/defaultNav.html"/>
             <set name="headerContent" value="/layout/defaultHeader.html"/>
             <set name="bodyContent" value="/layout/defaultBody.html"/>
             <set name="footerContent" value="/layout/defaultFooter.html"/>
       </symbols>
   </component>

And declaring layoutBean in your faces-config.xml.  Then you would
only need to do this once for all your layouts.  Gary, can the
managed-bean be optional?

Reply via email to