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?