Better yet would be to set loginBean as a managed property for any
beans that use it.   Then you don't need to write any code.

On 12/7/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
I see, thats pretty good idea, will do like you wrote, I'm quite lazy in
repeating the code, so that solution is for me :)

Thanks everyone for help :)

Tomek

Jeff Bischoff wrote:
> Tomek,
>
> > session.setAttribute("USER", loginName);
>
> You shouldn't need to do direct session/request manipulation as long
> as you have a facescontext.
>
> I also don't like including all this FacesContext/ValueBinding code in
> every managed bean. Too much clutter.
>
> Better is a utility class that performs such lookups between managed
> beans:
>
> public class WebLookup {
>
>     /**
>      * Look up a managed bean by JSP-EL value-binding expression
>      * @param ref a value-binding expression to lookup
>      * @return the managed bean referenced by the expression
>      */
>     public static Object getManagedBean(String ref) {
>         // Find or create the web-tier data object
>         // ref like "#{loginBean}"
>         // would return the LoginBean
>         FacesContext context = FacesContext.getCurrentInstance();
>         ValueBinding binding =
> context.getApplication().createValueBinding(ref);
>         return binding.getValue(context);
>     }
>
>     public static LoginBean getLoginBean() {
>         return (LoginBean )getManagedBean("#{loginBean}");
>     }
>
>     ...
>
> }
>
> Regards,
>
> Jeff Bischoff
> Kenneth L Kurz & Associates, Inc.
>
> [EMAIL PROTECTED] wrote:
>>    Hi,
>>       I'm wondering what solution for that you got boys:
>>         - how should I pass the password and the user login through
>> beans, as I need both of them to retrieve data form database.
>>
>>    Is good enough to have loginBean.java and then on each bean which
>> needs connect to db do something like:
>>        FacesContext context = FacesContext.getCurrentInstance();
>>        ValueBinding vb =
>> context.getApplication().createValueBinding("#{loginBean}");
>>
>>        u = ((UserBean) vb.getValue(context));
>>        userName = u.getLoginName();
>>        passwd = u.getPasswd();
>>      Or better solution will be put user and password to the session
>> like:
>>            FacesContext fc = FacesContext.getCurrentInstance();
>>            HttpSession session = (HttpSession)
>> fc.getExternalContext().getSession(false);
>>            session.setAttribute("USER", loginName);
>>      and then retrieve it when necessery:
>>            HttpSession session = (HttpSession)
>> context.getExternalContext().getSession(false);
>>            session.getAttribute("USER");
>>
>>   Thanks for any suggestion!
>>
>> Tomek
>>
>>
>>
>
>
>


Reply via email to