You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Guy Bashan <gu...@gmail.com> on 2008/07/21 14:34:50 UTC

[MyFaces] Initializing Session Bean

Hi,

 

You will to excuse me for  this question, I have always worked with request
scope beans:

I have a screen in which details are being edited. Now, I have to add a
button near one of the drop downs that will take me to a new screen,
allowing me to create a new object and get back to the previous screen. Of
course I will have to save the data in the first screen when moving to the
second one and when returning data should be restored.

So I thought setting my entity bean (hibernate pojo)  as a session bean,
allowing me to store the state when moving from one screen to another. My
question is: what mechanism can I use in order to initialize the entity
bean. When going to the "create new object" screen I will want to "remember"
the data, but when coming to the screen from some other place I will want
the object to be either initialize, or to contain the data of a loaded
object. I also don't want to start calculating from which screen or link I
am coming to this screen in order to decide in which cases I have to
initialize the object and in which not.

 

Is there a neat way of doing it?

Btw, I can't use Seam or some framework currently on this project.

 

Thanks,

Guy.


Re: [MyFaces] Initializing Session Bean

Posted by Mike Kienenberger <mk...@gmail.com>.
I don't know if it's the best solution, but in a past project I did it
like this:

I had one request-scoped bean per screen, and I had a
"setSelectedObject(Object object)" method on each of those beans.

The original page was responsible for calling "setSelectedObject()" on
the target bean page.  If it passed a null object, the bean created a
new one.  Otherwise, it stored the object as appropriate.

The caller could either set the value programmically, or it could set
it on the UICommand:

<h:commandButton ...>
       <f:setPropertyActionListener
              target="#{targetPageBean.selectedObject}"
              value="#{currentPageBean.objectToPass}"/>
</h:commandButton>


On 7/21/08, Guy Bashan <gu...@gmail.com> wrote:
>
>
>
>
> Hi,
>
>
>
> You will to excuse me for  this question, I have always worked with request
> scope beans:
>
> I have a screen in which details are being edited. Now, I have to add a
> button near one of the drop downs that will take me to a new screen,
> allowing me to create a new object and get back to the previous screen. Of
> course I will have to save the data in the first screen when moving to the
> second one and when returning data should be restored.
>
> So I thought setting my entity bean (hibernate pojo)  as a session bean,
> allowing me to store the state when moving from one screen to another. My
> question is: what mechanism can I use in order to initialize the entity
> bean. When going to the "create new object" screen I will want to "remember"
> the data, but when coming to the screen from some other place I will want
> the object to be either initialize, or to contain the data of a loaded
> object. I also don't want to start calculating from which screen or link I
> am coming to this screen in order to decide in which cases I have to
> initialize the object and in which not.
>
>
>
> Is there a neat way of doing it?
>
> Btw, I can't use Seam or some framework currently on this project.
>
>
>
> Thanks,
>
> Guy.

Re: [MyFaces] Initializing Session Bean

Posted by Mikael Andersson <ma...@gmail.com>.
Perhaps something like this:
//Session scoped backing bean
public class MyPojoManager{

private MyPojo pojo;

public MyPojo getPojo(){
if(pojo == null){
 //initialize the MyPojo object
}
return pojo;
}

}

This way it would only be initialized once.

- micke

2008/7/21 Guy Bashan <gu...@gmail.com>:

>  Hi,
>
>
>
> You will to excuse me for  this question, I have always worked with request
> scope beans:
>
> I have a screen in which details are being edited. Now, I have to add a
> button near one of the drop downs that will take me to a new screen,
> allowing me to create a new object and get back to the previous screen. Of
> course I will have to save the data in the first screen when moving to the
> second one and when returning data should be restored.
>
> So I thought setting my entity bean (hibernate pojo)  as a session bean,
> allowing me to store the state when moving from one screen to another. My
> question is: what mechanism can I use in order to initialize the entity
> bean. When going to the "create new object" screen I will want to "remember"
> the data, but when coming to the screen from some other place I will want
> the object to be either initialize, or to contain the data of a loaded
> object. I also don't want to start calculating from which screen or link I
> am coming to this screen in order to decide in which cases I have to
> initialize the object and in which not.
>
>
>
> Is there a neat way of doing it?
>
> Btw, I can't use Seam or some framework currently on this project.
>
>
>
> Thanks,
>
> Guy.
>