I didn't mean to clear the form, but clear the backing bean properties.

public class MyBean {
 private MyObject myObject;

 public String save() {
   // EntityManager or hibernate session save here
   // clear the properties:
   clearState();
 }

 public void onCancel(ActionEvent evt) {
   clearState();
 }

 private void clearState() {
   myObject = null;
 }
}

On 6/13/07, bansi <[EMAIL PROTECTED]> wrote:

I figured out that i can do something like this ...
In session scope, only one instance of the backing bean will be used during
the whole browser session. When you want to recreate the managed bean inside
the backing bean during session, then do
FacesContext
   .getCurrentInstance()
      .getExternalContext()
         .getSessionMap()
            .put("myBean", new MyBean());

BUT i am not sure where to put this snippet of code.



bansi wrote:
>
> Andrew
> I totally agree with you on "its the desired behavior of a session bean --
> one instance for the
> user's session"
> But is their a way to recreate the instance of backing bean  in following
> situations
> 1) Whenever a new record is inserted into database. The reason i mention
> this is my backing bean instantiates the pojo and for subsequent save into
> database the backing bean holds onto the old instance of pojo having same
> identifier (ID) value. This is exactly the reason Hibernate throws
> Detached Object Exception passed to Persist
>
> 2) Whenever i  navigate between JSF pages , i wanna backing bean to be
> re-initialized i.e. re-created with new instance
>
> Please note as suggested by you i am not looking to clear off the fields
> on the form whereas i want to recreate the whole backing bean itself
>
> Any pointers/suggestions highly appreciated
>
> Regards
> Bansi
>
>
> Andrew Robinson-5 wrote:
>>
>> That is the desired behavior of a session bean -- one instance for the
>> user's session. If you want to use session, and have it be able to be
>> cleared, then you will want to create a clear action or action
>> listener method that clears all of the member variables when executed.
>>
>> I would instead recommend using conversational scope from JBoss-Seam
>> or MyFaces or request scope and use saveState as needed to persist
>> values across pages.
>>
>> -Andrew
>>
>> On 6/13/07, bansi <[EMAIL PROTECTED]> wrote:
>>>
>>> We have backing bean defined in "session" scope
>>> So whenever we do a submit on JSF Form, it holds onto same backing bean.
>>> This is not desirable as
>>> -> The Form will have  different set of values each time it does a
>>> submit
>>> -> The Backing bean has variable defined to instantiate a POJO
>>> i.e.private
>>> MyPojo pojo = new MyPojo();
>>> So every time JSF form submits to the backing bean, it holds onto the
>>> same
>>> instance of POJO which eventually results in insertion problems into
>>> database i.e. having same Identifier (ID) value
>>> -> The same problem occurs if i navigate to different page and come back
>>> to
>>> original page
>>>
>>> Is their a way to re-initialize the Backing Bean ???
>>> --
>>> View this message in context:
>>> 
http://www.nabble.com/How-to-Re-Initialize-JSF-Backing-Bean-on-Form-Submit-tf3918359.html#a11110517
>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>
>

--
View this message in context: 
http://www.nabble.com/How-to-Re-Initialize-JSF-Backing-Bean-on-Form-Submit-tf3918359.html#a11111042
Sent from the MyFaces - Users mailing list archive at Nabble.com.


Reply via email to