Have a backing bean which represents the user details
class UserDetails{
private int age;
private
String name;
private boolean renderUserForm;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isRenderUserForm() {
return renderUserForm;
}
public void setRenderUserForm(boolean renderUserForm) {
this.renderUserForm = renderUserForm;
}
}
with in the f:subview place the user form fields
<f:subview rendered="#{user.renderUserForm}">....</f:subview>
write a event listener and access the managed user bean and update fields age,name etc.. also set the renderUserForm boolean value to true
accessing managed beans in a event listener
public Object getManagedBean(String beanName, Object newBean) {
Object bean=null;
if(newBean!=null)
bean = getFacesContext().getExternalContext().getSessionMap().get( beanName );
if(bean == null)
{
getFacesContext().getExternalContext().getSessionMap().put(beanName, newBean);
return newBean;
}
else
{
return bean;
}
}