You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Michael Heinen <mh...@googlemail.com> on 2010/07/20 17:14:06 UTC

ui:param value accessible in backing bean?

Is it possible to access the value of a facelets ui:param tag in phase 
render response in a backing bean?
I tried to resolve #{activeTab} in MyController.getOnlick() without success.

Sample:
1) Template
<ui:composition template="templates/main.xhtml">
<ui:param name="activeTab" value="blabla"/>

<ui:define name="navigation">
<ui:include src="/facelets/navigation.xhtml"></ui:include>
</ui:define>


2) navigation.xhtml
...
<t:commandLink onclick="#{MyController.onlick}"
...

I use myFaces 1.2.9 and facelets 1.1.15.

Thanks,
Michael


Re: ui:param value accessible in backing bean?

Posted by Jakob Korherr <ja...@gmail.com>.
Just FYI: I changed the location of the custom-tags project to
http://sandbox890.googlecode.com/svn/trunk/facelets1-custom-tags/

Regards,
Jakob

2010/7/21 Michael Heinen <mh...@googlemail.com>

> Many thanks Jakob, your tag is working well.
>
> Michael
>
> Am 21.07.2010 13:06, schrieb Jakob Korherr:
>
>  Hi Michael,
>>
>> I just created a Facelets 1.1.x custom tags project and adapted the
>> SetHandler from MyFaces core 2.0 for Facelets 1.1.x.
>>
>> You can find the source at
>>
>> http://jakobk-extensions.googlecode.com/svn/trunk/jsf/facelets1/facelets1-custom-tags/
>>
>> Just check it out and use mvn clean install to get the JAR. If you include
>> this JAR in your webapp, you can use the custom set tag like this:
>>
>> <html xmlns="http://www.w3.org/1999/xhtml"
>>       xmlns:jk="http://facelets.jakobk.at/customtags">
>>
>> <jk:set target="#{requestScope}" property="foo" value="fooValue" />
>>
>> I hope you can use this solution.
>>
>> Regards,
>> Jakob
>>
>> 2010/7/21 Jakob Korherr<ja...@gmail.com>
>>
>>
>>
>>> Hi Michael,
>>>
>>>
>>> "I migrated my app from jsp/tiles to xhtml/facelets successfully in the
>>> last 2-3 days."
>>>
>>> That's great :)
>>>
>>> Hm, yes. Unfortunately I digged deeper into it and found out that<c:set>
>>> is equal to<ui:param>  on facelets-1.x, thus the suggested code only
>>> works
>>> for JSF 2.0. I am sorry, but this means that you will have to find some
>>> other tag which accomplishes this or you will have to write your own one
>>> (which should not be too hard, because you can take the code from MyFaces
>>> core 2.0 SetHandler -->
>>> org.apache.myfaces.view.facelets.tag.jstl.core.SetHandler and just
>>> register
>>> it in your facelets taglib).
>>>
>>> I hope this helps!
>>>
>>> Regards,
>>> Jakob
>>>
>>> 2010/7/21 Michael Heinen<mh...@googlemail.com>
>>>
>>> Hi Jakob,
>>>
>>>
>>>> I migrated my app from jsp/tiles to xhtml/facelets successfully in the
>>>> last 2-3 days.
>>>> But your hint is unfortunately not working for me.
>>>>
>>>> namespace in xhtml file for core tags is: xmlns:c="
>>>> http://java.sun.com/jsp/jstl/core"
>>>> Is this the right one or do I have to use xmlns:c="
>>>> http://java.sun.com/jstl/core" (without jsp)?
>>>>
>>>> jstl-1.2.jar is in the lib folder of my webApp.
>>>>
>>>> <c:out does not print anything and the set value is also not accessible
>>>> via EL in the getter of my bean.
>>>>
>>>> My current code:
>>>> <html xmlns="http://www.w3.org/1999/xhtml"
>>>>      xmlns:ui="http://java.sun.com/jsf/facelets"
>>>>
>>>>      xmlns:c="http://java.sun.com/jsp/jstl/core">
>>>>
>>>> <ui:composition template="templates/main.xhtml">
>>>> <ui:param name="activeTab" value="wb"/>
>>>>
>>>> <c:set var="foo2" value="bla2" scope="request"/>
>>>>
>>>> <c:set target="#{requestScope}" property="foo" value="fooValue" />
>>>>
>>>> <ui:define name="navigation">
>>>> <ui:include src="/facelets/parts/navigation.xhtml"></ui:include>
>>>> </ui:define>
>>>>
>>>> I try to access foo and foo2 in navigation.xhtml and in a getter called
>>>> from navigation.xhtml.
>>>> Any Idea what's going wrong here ?
>>>>
>>>> Greetz,
>>>> Michael
>>>>
>>>> Am 20.07.2010 23:20, schrieb Jakob Korherr:
>>>>
>>>>  Hi Michael,
>>>>
>>>>
>>>>> You can use<c:set>   from the JSTL to put the value into the request
>>>>> scope.
>>>>> Then you can access it in the facelet and also later in the action
>>>>> method.
>>>>>
>>>>> Namespace: xmlns:c="http://java.sun.com/jsp/jstl/core"
>>>>>
>>>>> <c:set target="#{requestScope}" property="foo" value="fooValue" />
>>>>>
>>>>> Regards,
>>>>> Jakob
>>>>>
>>>>> 2010/7/20 Leonardo Uribe<lu...@gmail.com>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> Hi
>>>>>>
>>>>>> I checked in deep some days ago ui:param, and it only define the
>>>>>> expression
>>>>>> when the view is build, but its context is not preserved on other
>>>>>> phases.
>>>>>> FaceletContext extends from ELContext and override its VariableMapper
>>>>>> and
>>>>>> FunctionMapper. So in practice, ui:param just add a variable on the
>>>>>> variable
>>>>>> mapper. but after ui:composition and ui:include ends its processing
>>>>>> the
>>>>>> variable is just discarded, because the whole VariableMapper wrapper
>>>>>> created
>>>>>> by this two tags is removed too.
>>>>>>
>>>>>> regards,
>>>>>>
>>>>>> Leonardo Uribe
>>>>>>
>>>>>> 2010/7/20 Michael Heinen<mh...@googlemail.com>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Is it possible to access the value of a facelets ui:param tag in
>>>>>>> phase
>>>>>>> render response in a backing bean?
>>>>>>> I tried to resolve #{activeTab} in MyController.getOnlick() without
>>>>>>> success.
>>>>>>>
>>>>>>> Sample:
>>>>>>> 1) Template
>>>>>>> <ui:composition template="templates/main.xhtml">
>>>>>>> <ui:param name="activeTab" value="blabla"/>
>>>>>>>
>>>>>>> <ui:define name="navigation">
>>>>>>> <ui:include src="/facelets/navigation.xhtml"></ui:include>
>>>>>>> </ui:define>
>>>>>>>
>>>>>>>
>>>>>>> 2) navigation.xhtml
>>>>>>> ...
>>>>>>> <t:commandLink onclick="#{MyController.onlick}"
>>>>>>> ...
>>>>>>>
>>>>>>> I use myFaces 1.2.9 and facelets 1.1.15.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Michael
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>> --
>>> Jakob Korherr
>>>
>>> blog: http://www.jakobk.com
>>> twitter: http://twitter.com/jakobkorherr
>>> work: http://www.irian.at
>>>
>>>
>>>
>>
>>
>>
>>
>
>


-- 
Jakob Korherr

blog: http://www.jakobk.com
twitter: http://twitter.com/jakobkorherr
work: http://www.irian.at

Re: ui:param value accessible in backing bean?

Posted by Michael Heinen <mh...@googlemail.com>.
Many thanks Jakob, your tag is working well.

Michael

Am 21.07.2010 13:06, schrieb Jakob Korherr:
> Hi Michael,
>
> I just created a Facelets 1.1.x custom tags project and adapted the
> SetHandler from MyFaces core 2.0 for Facelets 1.1.x.
>
> You can find the source at
> http://jakobk-extensions.googlecode.com/svn/trunk/jsf/facelets1/facelets1-custom-tags/
>
> Just check it out and use mvn clean install to get the JAR. If you include
> this JAR in your webapp, you can use the custom set tag like this:
>
> <html xmlns="http://www.w3.org/1999/xhtml"
>        xmlns:jk="http://facelets.jakobk.at/customtags">
>
> <jk:set target="#{requestScope}" property="foo" value="fooValue" />
>
> I hope you can use this solution.
>
> Regards,
> Jakob
>
> 2010/7/21 Jakob Korherr<ja...@gmail.com>
>
>    
>> Hi Michael,
>>
>>
>> "I migrated my app from jsp/tiles to xhtml/facelets successfully in the
>> last 2-3 days."
>>
>> That's great :)
>>
>> Hm, yes. Unfortunately I digged deeper into it and found out that<c:set>
>> is equal to<ui:param>  on facelets-1.x, thus the suggested code only works
>> for JSF 2.0. I am sorry, but this means that you will have to find some
>> other tag which accomplishes this or you will have to write your own one
>> (which should not be too hard, because you can take the code from MyFaces
>> core 2.0 SetHandler -->
>> org.apache.myfaces.view.facelets.tag.jstl.core.SetHandler and just register
>> it in your facelets taglib).
>>
>> I hope this helps!
>>
>> Regards,
>> Jakob
>>
>> 2010/7/21 Michael Heinen<mh...@googlemail.com>
>>
>> Hi Jakob,
>>      
>>> I migrated my app from jsp/tiles to xhtml/facelets successfully in the
>>> last 2-3 days.
>>> But your hint is unfortunately not working for me.
>>>
>>> namespace in xhtml file for core tags is: xmlns:c="
>>> http://java.sun.com/jsp/jstl/core"
>>> Is this the right one or do I have to use xmlns:c="
>>> http://java.sun.com/jstl/core" (without jsp)?
>>>
>>> jstl-1.2.jar is in the lib folder of my webApp.
>>>
>>> <c:out does not print anything and the set value is also not accessible
>>> via EL in the getter of my bean.
>>>
>>> My current code:
>>> <html xmlns="http://www.w3.org/1999/xhtml"
>>>       xmlns:ui="http://java.sun.com/jsf/facelets"
>>>
>>>       xmlns:c="http://java.sun.com/jsp/jstl/core">
>>>
>>> <ui:composition template="templates/main.xhtml">
>>> <ui:param name="activeTab" value="wb"/>
>>>
>>> <c:set var="foo2" value="bla2" scope="request"/>
>>>
>>> <c:set target="#{requestScope}" property="foo" value="fooValue" />
>>>
>>> <ui:define name="navigation">
>>> <ui:include src="/facelets/parts/navigation.xhtml"></ui:include>
>>> </ui:define>
>>>
>>> I try to access foo and foo2 in navigation.xhtml and in a getter called
>>> from navigation.xhtml.
>>> Any Idea what's going wrong here ?
>>>
>>> Greetz,
>>> Michael
>>>
>>> Am 20.07.2010 23:20, schrieb Jakob Korherr:
>>>
>>>   Hi Michael,
>>>        
>>>> You can use<c:set>   from the JSTL to put the value into the request
>>>> scope.
>>>> Then you can access it in the facelet and also later in the action
>>>> method.
>>>>
>>>> Namespace: xmlns:c="http://java.sun.com/jsp/jstl/core"
>>>>
>>>> <c:set target="#{requestScope}" property="foo" value="fooValue" />
>>>>
>>>> Regards,
>>>> Jakob
>>>>
>>>> 2010/7/20 Leonardo Uribe<lu...@gmail.com>
>>>>
>>>>
>>>>
>>>>          
>>>>> Hi
>>>>>
>>>>> I checked in deep some days ago ui:param, and it only define the
>>>>> expression
>>>>> when the view is build, but its context is not preserved on other
>>>>> phases.
>>>>> FaceletContext extends from ELContext and override its VariableMapper
>>>>> and
>>>>> FunctionMapper. So in practice, ui:param just add a variable on the
>>>>> variable
>>>>> mapper. but after ui:composition and ui:include ends its processing the
>>>>> variable is just discarded, because the whole VariableMapper wrapper
>>>>> created
>>>>> by this two tags is removed too.
>>>>>
>>>>> regards,
>>>>>
>>>>> Leonardo Uribe
>>>>>
>>>>> 2010/7/20 Michael Heinen<mh...@googlemail.com>
>>>>>
>>>>>
>>>>>
>>>>>            
>>>>>> Is it possible to access the value of a facelets ui:param tag in phase
>>>>>> render response in a backing bean?
>>>>>> I tried to resolve #{activeTab} in MyController.getOnlick() without
>>>>>> success.
>>>>>>
>>>>>> Sample:
>>>>>> 1) Template
>>>>>> <ui:composition template="templates/main.xhtml">
>>>>>> <ui:param name="activeTab" value="blabla"/>
>>>>>>
>>>>>> <ui:define name="navigation">
>>>>>> <ui:include src="/facelets/navigation.xhtml"></ui:include>
>>>>>> </ui:define>
>>>>>>
>>>>>>
>>>>>> 2) navigation.xhtml
>>>>>> ...
>>>>>> <t:commandLink onclick="#{MyController.onlick}"
>>>>>> ...
>>>>>>
>>>>>> I use myFaces 1.2.9 and facelets 1.1.15.
>>>>>>
>>>>>> Thanks,
>>>>>> Michael
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>              
>>>>>
>>>>>            
>>>>
>>>>
>>>>
>>>>          
>>>
>>>        
>>
>> --
>> Jakob Korherr
>>
>> blog: http://www.jakobk.com
>> twitter: http://twitter.com/jakobkorherr
>> work: http://www.irian.at
>>
>>      
>
>
>    


Re: ui:param value accessible in backing bean?

Posted by Jakob Korherr <ja...@gmail.com>.
Hi Michael,

I just created a Facelets 1.1.x custom tags project and adapted the
SetHandler from MyFaces core 2.0 for Facelets 1.1.x.

You can find the source at
http://jakobk-extensions.googlecode.com/svn/trunk/jsf/facelets1/facelets1-custom-tags/

Just check it out and use mvn clean install to get the JAR. If you include
this JAR in your webapp, you can use the custom set tag like this:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:jk="http://facelets.jakobk.at/customtags">

<jk:set target="#{requestScope}" property="foo" value="fooValue" />

I hope you can use this solution.

Regards,
Jakob

2010/7/21 Jakob Korherr <ja...@gmail.com>

> Hi Michael,
>
>
> "I migrated my app from jsp/tiles to xhtml/facelets successfully in the
> last 2-3 days."
>
> That's great :)
>
> Hm, yes. Unfortunately I digged deeper into it and found out that <c:set>
> is equal to <ui:param> on facelets-1.x, thus the suggested code only works
> for JSF 2.0. I am sorry, but this means that you will have to find some
> other tag which accomplishes this or you will have to write your own one
> (which should not be too hard, because you can take the code from MyFaces
> core 2.0 SetHandler -->
> org.apache.myfaces.view.facelets.tag.jstl.core.SetHandler and just register
> it in your facelets taglib).
>
> I hope this helps!
>
> Regards,
> Jakob
>
> 2010/7/21 Michael Heinen <mh...@googlemail.com>
>
> Hi Jakob,
>>
>> I migrated my app from jsp/tiles to xhtml/facelets successfully in the
>> last 2-3 days.
>> But your hint is unfortunately not working for me.
>>
>> namespace in xhtml file for core tags is: xmlns:c="
>> http://java.sun.com/jsp/jstl/core"
>> Is this the right one or do I have to use xmlns:c="
>> http://java.sun.com/jstl/core" (without jsp)?
>>
>> jstl-1.2.jar is in the lib folder of my webApp.
>>
>> <c:out does not print anything and the set value is also not accessible
>> via EL in the getter of my bean.
>>
>> My current code:
>> <html xmlns="http://www.w3.org/1999/xhtml"
>>      xmlns:ui="http://java.sun.com/jsf/facelets"
>>
>>      xmlns:c="http://java.sun.com/jsp/jstl/core">
>>
>> <ui:composition template="templates/main.xhtml">
>> <ui:param name="activeTab" value="wb"/>
>>
>> <c:set var="foo2" value="bla2" scope="request"/>
>>
>> <c:set target="#{requestScope}" property="foo" value="fooValue" />
>>
>> <ui:define name="navigation">
>> <ui:include src="/facelets/parts/navigation.xhtml"></ui:include>
>> </ui:define>
>>
>> I try to access foo and foo2 in navigation.xhtml and in a getter called
>> from navigation.xhtml.
>> Any Idea what's going wrong here ?
>>
>> Greetz,
>> Michael
>>
>> Am 20.07.2010 23:20, schrieb Jakob Korherr:
>>
>>  Hi Michael,
>>>
>>> You can use<c:set>  from the JSTL to put the value into the request
>>> scope.
>>> Then you can access it in the facelet and also later in the action
>>> method.
>>>
>>> Namespace: xmlns:c="http://java.sun.com/jsp/jstl/core"
>>>
>>> <c:set target="#{requestScope}" property="foo" value="fooValue" />
>>>
>>> Regards,
>>> Jakob
>>>
>>> 2010/7/20 Leonardo Uribe<lu...@gmail.com>
>>>
>>>
>>>
>>>> Hi
>>>>
>>>> I checked in deep some days ago ui:param, and it only define the
>>>> expression
>>>> when the view is build, but its context is not preserved on other
>>>> phases.
>>>> FaceletContext extends from ELContext and override its VariableMapper
>>>> and
>>>> FunctionMapper. So in practice, ui:param just add a variable on the
>>>> variable
>>>> mapper. but after ui:composition and ui:include ends its processing the
>>>> variable is just discarded, because the whole VariableMapper wrapper
>>>> created
>>>> by this two tags is removed too.
>>>>
>>>> regards,
>>>>
>>>> Leonardo Uribe
>>>>
>>>> 2010/7/20 Michael Heinen<mh...@googlemail.com>
>>>>
>>>>
>>>>
>>>>> Is it possible to access the value of a facelets ui:param tag in phase
>>>>> render response in a backing bean?
>>>>> I tried to resolve #{activeTab} in MyController.getOnlick() without
>>>>> success.
>>>>>
>>>>> Sample:
>>>>> 1) Template
>>>>> <ui:composition template="templates/main.xhtml">
>>>>> <ui:param name="activeTab" value="blabla"/>
>>>>>
>>>>> <ui:define name="navigation">
>>>>> <ui:include src="/facelets/navigation.xhtml"></ui:include>
>>>>> </ui:define>
>>>>>
>>>>>
>>>>> 2) navigation.xhtml
>>>>> ...
>>>>> <t:commandLink onclick="#{MyController.onlick}"
>>>>> ...
>>>>>
>>>>> I use myFaces 1.2.9 and facelets 1.1.15.
>>>>>
>>>>> Thanks,
>>>>> Michael
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>
>>
>
>
> --
> Jakob Korherr
>
> blog: http://www.jakobk.com
> twitter: http://twitter.com/jakobkorherr
> work: http://www.irian.at
>



-- 
Jakob Korherr

blog: http://www.jakobk.com
twitter: http://twitter.com/jakobkorherr
work: http://www.irian.at

Re: ui:param value accessible in backing bean?

Posted by Jakob Korherr <ja...@gmail.com>.
Hi Michael,

"I migrated my app from jsp/tiles to xhtml/facelets successfully in the last
2-3 days."

That's great :)

Hm, yes. Unfortunately I digged deeper into it and found out that <c:set> is
equal to <ui:param> on facelets-1.x, thus the suggested code only works for
JSF 2.0. I am sorry, but this means that you will have to find some other
tag which accomplishes this or you will have to write your own one (which
should not be too hard, because you can take the code from MyFaces core 2.0
SetHandler --> org.apache.myfaces.view.facelets.tag.jstl.core.SetHandler and
just register it in your facelets taglib).

I hope this helps!

Regards,
Jakob

2010/7/21 Michael Heinen <mh...@googlemail.com>

> Hi Jakob,
>
> I migrated my app from jsp/tiles to xhtml/facelets successfully in the last
> 2-3 days.
> But your hint is unfortunately not working for me.
>
> namespace in xhtml file for core tags is: xmlns:c="
> http://java.sun.com/jsp/jstl/core"
> Is this the right one or do I have to use xmlns:c="
> http://java.sun.com/jstl/core" (without jsp)?
>
> jstl-1.2.jar is in the lib folder of my webApp.
>
> <c:out does not print anything and the set value is also not accessible via
> EL in the getter of my bean.
>
> My current code:
> <html xmlns="http://www.w3.org/1999/xhtml"
>      xmlns:ui="http://java.sun.com/jsf/facelets"
>
>      xmlns:c="http://java.sun.com/jsp/jstl/core">
>
> <ui:composition template="templates/main.xhtml">
> <ui:param name="activeTab" value="wb"/>
>
> <c:set var="foo2" value="bla2" scope="request"/>
>
> <c:set target="#{requestScope}" property="foo" value="fooValue" />
>
> <ui:define name="navigation">
> <ui:include src="/facelets/parts/navigation.xhtml"></ui:include>
> </ui:define>
>
> I try to access foo and foo2 in navigation.xhtml and in a getter called
> from navigation.xhtml.
> Any Idea what's going wrong here ?
>
> Greetz,
> Michael
>
> Am 20.07.2010 23:20, schrieb Jakob Korherr:
>
>  Hi Michael,
>>
>> You can use<c:set>  from the JSTL to put the value into the request scope.
>> Then you can access it in the facelet and also later in the action method.
>>
>> Namespace: xmlns:c="http://java.sun.com/jsp/jstl/core"
>>
>> <c:set target="#{requestScope}" property="foo" value="fooValue" />
>>
>> Regards,
>> Jakob
>>
>> 2010/7/20 Leonardo Uribe<lu...@gmail.com>
>>
>>
>>
>>> Hi
>>>
>>> I checked in deep some days ago ui:param, and it only define the
>>> expression
>>> when the view is build, but its context is not preserved on other phases.
>>> FaceletContext extends from ELContext and override its VariableMapper and
>>> FunctionMapper. So in practice, ui:param just add a variable on the
>>> variable
>>> mapper. but after ui:composition and ui:include ends its processing the
>>> variable is just discarded, because the whole VariableMapper wrapper
>>> created
>>> by this two tags is removed too.
>>>
>>> regards,
>>>
>>> Leonardo Uribe
>>>
>>> 2010/7/20 Michael Heinen<mh...@googlemail.com>
>>>
>>>
>>>
>>>> Is it possible to access the value of a facelets ui:param tag in phase
>>>> render response in a backing bean?
>>>> I tried to resolve #{activeTab} in MyController.getOnlick() without
>>>> success.
>>>>
>>>> Sample:
>>>> 1) Template
>>>> <ui:composition template="templates/main.xhtml">
>>>> <ui:param name="activeTab" value="blabla"/>
>>>>
>>>> <ui:define name="navigation">
>>>> <ui:include src="/facelets/navigation.xhtml"></ui:include>
>>>> </ui:define>
>>>>
>>>>
>>>> 2) navigation.xhtml
>>>> ...
>>>> <t:commandLink onclick="#{MyController.onlick}"
>>>> ...
>>>>
>>>> I use myFaces 1.2.9 and facelets 1.1.15.
>>>>
>>>> Thanks,
>>>> Michael
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>
>>
>
>


-- 
Jakob Korherr

blog: http://www.jakobk.com
twitter: http://twitter.com/jakobkorherr
work: http://www.irian.at

Re: ui:param value accessible in backing bean?

Posted by Michael Heinen <mh...@googlemail.com>.
Hi Jakob,

I migrated my app from jsp/tiles to xhtml/facelets successfully in the 
last 2-3 days.
But your hint is unfortunately not working for me.

namespace in xhtml file for core tags is: 
xmlns:c="http://java.sun.com/jsp/jstl/core"
Is this the right one or do I have to use 
xmlns:c="http://java.sun.com/jstl/core" (without jsp)?

jstl-1.2.jar is in the lib folder of my webApp.

<c:out does not print anything and the set value is also not accessible 
via EL in the getter of my bean.

My current code:
<html xmlns="http://www.w3.org/1999/xhtml"
       xmlns:ui="http://java.sun.com/jsf/facelets"
       xmlns:c="http://java.sun.com/jsp/jstl/core">

<ui:composition template="templates/main.xhtml">
<ui:param name="activeTab" value="wb"/>

<c:set var="foo2" value="bla2" scope="request"/>
<c:set target="#{requestScope}" property="foo" value="fooValue" />

<ui:define name="navigation">
<ui:include src="/facelets/parts/navigation.xhtml"></ui:include>
</ui:define>

I try to access foo and foo2 in navigation.xhtml and in a getter called 
from navigation.xhtml.
Any Idea what's going wrong here ?

Greetz,
Michael

Am 20.07.2010 23:20, schrieb Jakob Korherr:
> Hi Michael,
>
> You can use<c:set>  from the JSTL to put the value into the request scope.
> Then you can access it in the facelet and also later in the action method.
>
> Namespace: xmlns:c="http://java.sun.com/jsp/jstl/core"
>
> <c:set target="#{requestScope}" property="foo" value="fooValue" />
>
> Regards,
> Jakob
>
> 2010/7/20 Leonardo Uribe<lu...@gmail.com>
>
>    
>> Hi
>>
>> I checked in deep some days ago ui:param, and it only define the expression
>> when the view is build, but its context is not preserved on other phases.
>> FaceletContext extends from ELContext and override its VariableMapper and
>> FunctionMapper. So in practice, ui:param just add a variable on the
>> variable
>> mapper. but after ui:composition and ui:include ends its processing the
>> variable is just discarded, because the whole VariableMapper wrapper
>> created
>> by this two tags is removed too.
>>
>> regards,
>>
>> Leonardo Uribe
>>
>> 2010/7/20 Michael Heinen<mh...@googlemail.com>
>>
>>      
>>> Is it possible to access the value of a facelets ui:param tag in phase
>>> render response in a backing bean?
>>> I tried to resolve #{activeTab} in MyController.getOnlick() without
>>> success.
>>>
>>> Sample:
>>> 1) Template
>>> <ui:composition template="templates/main.xhtml">
>>> <ui:param name="activeTab" value="blabla"/>
>>>
>>> <ui:define name="navigation">
>>> <ui:include src="/facelets/navigation.xhtml"></ui:include>
>>> </ui:define>
>>>
>>>
>>> 2) navigation.xhtml
>>> ...
>>> <t:commandLink onclick="#{MyController.onlick}"
>>> ...
>>>
>>> I use myFaces 1.2.9 and facelets 1.1.15.
>>>
>>> Thanks,
>>> Michael
>>>
>>>
>>>        
>>      
>
>
>    


Re: ui:param value accessible in backing bean?

Posted by Jakob Korherr <ja...@gmail.com>.
Hi Michael,

You can use <c:set> from the JSTL to put the value into the request scope.
Then you can access it in the facelet and also later in the action method.

Namespace: xmlns:c="http://java.sun.com/jsp/jstl/core"

<c:set target="#{requestScope}" property="foo" value="fooValue" />

Regards,
Jakob

2010/7/20 Leonardo Uribe <lu...@gmail.com>

> Hi
>
> I checked in deep some days ago ui:param, and it only define the expression
> when the view is build, but its context is not preserved on other phases.
> FaceletContext extends from ELContext and override its VariableMapper and
> FunctionMapper. So in practice, ui:param just add a variable on the
> variable
> mapper. but after ui:composition and ui:include ends its processing the
> variable is just discarded, because the whole VariableMapper wrapper
> created
> by this two tags is removed too.
>
> regards,
>
> Leonardo Uribe
>
> 2010/7/20 Michael Heinen <mh...@googlemail.com>
>
> > Is it possible to access the value of a facelets ui:param tag in phase
> > render response in a backing bean?
> > I tried to resolve #{activeTab} in MyController.getOnlick() without
> > success.
> >
> > Sample:
> > 1) Template
> > <ui:composition template="templates/main.xhtml">
> > <ui:param name="activeTab" value="blabla"/>
> >
> > <ui:define name="navigation">
> > <ui:include src="/facelets/navigation.xhtml"></ui:include>
> > </ui:define>
> >
> >
> > 2) navigation.xhtml
> > ...
> > <t:commandLink onclick="#{MyController.onlick}"
> > ...
> >
> > I use myFaces 1.2.9 and facelets 1.1.15.
> >
> > Thanks,
> > Michael
> >
> >
>



-- 
Jakob Korherr

blog: http://www.jakobk.com
twitter: http://twitter.com/jakobkorherr
work: http://www.irian.at

Re: ui:param value accessible in backing bean?

Posted by Leonardo Uribe <lu...@gmail.com>.
Hi

I checked in deep some days ago ui:param, and it only define the expression
when the view is build, but its context is not preserved on other phases.
FaceletContext extends from ELContext and override its VariableMapper and
FunctionMapper. So in practice, ui:param just add a variable on the variable
mapper. but after ui:composition and ui:include ends its processing the
variable is just discarded, because the whole VariableMapper wrapper created
by this two tags is removed too.

regards,

Leonardo Uribe

2010/7/20 Michael Heinen <mh...@googlemail.com>

> Is it possible to access the value of a facelets ui:param tag in phase
> render response in a backing bean?
> I tried to resolve #{activeTab} in MyController.getOnlick() without
> success.
>
> Sample:
> 1) Template
> <ui:composition template="templates/main.xhtml">
> <ui:param name="activeTab" value="blabla"/>
>
> <ui:define name="navigation">
> <ui:include src="/facelets/navigation.xhtml"></ui:include>
> </ui:define>
>
>
> 2) navigation.xhtml
> ...
> <t:commandLink onclick="#{MyController.onlick}"
> ...
>
> I use myFaces 1.2.9 and facelets 1.1.15.
>
> Thanks,
> Michael
>
>