Could someone who have a clear view of those best practices sumup everything 
that have bean said in here ?
What are managed bean roles ?
What are action bean roles ?
What are Value Object roles ?
What are DAO roles ?
How do they communicate ? Who have reference to who ?

So much questions that I used to believe the answer, but since this discussion 
nothing is really clear anymore.

Thx
Clément

-----Message d'origine-----
De : CONNER, BRENDAN (SBCSI) [mailto:[EMAIL PROTECTED] 
Envoyé : mercredi 31 août 2005 21:55
À : MyFaces Discussion
Objet : RE: Thanks and a best practice question in regard to set up of backing 
bean Actions


You'll also want an EmployeeBean as a managed bean, which can be defined as 
having type EmployeeVO.

Then you'll want your EmployeeAction to have a managed reference to 
EmployeeBean, and don't instantiate that; let JSF do that.  And don't 
instantiate it; let JSF do that.  Then, when the user hits Save, JSF will 
automatically populate your EmployeeBean with the correct values (assuming your 
JSF page uses EmployeeBean), and your save() method can just refer to the 
EmployeeBean values.

- Brendan

-----Original Message-----
From: Rick Reumann [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, August 31, 2005 12:48 PM
To: MyFaces Discussion
Subject: Thanks and a best practice question in regard to set up of backing 
bean Actions


Thanks everyone for your help with the crud demo app I've been working with. 
(Special thanks to Brendan for his fine "Car" example code that he posted in 
another thread).

I want to start out on the right foot doing things in a 'correct' way before I 
get into some bad practices.

Currently, I have a list of employees in a table you click on the employee and 
a backing bean method gets the correct row, grabs the id, gets the true larger 
Employee object back, then forwards to an Employee form where you can edit the 
employee info.

What I'm debating about his how to best set up the backing bean that supports 
the 'save' of this form. Currently it's part of an "EmployeeAction" object and 
the pertinent code looks like:

EmployeeAction.java
------------------------------
private EmployeeVO employee = new EmployeeVO();
private EmployeesListBean empListBean;

public EmployeesListBean getEmployeesListBean() {
    return empListBean;
}

public void setEmployeesListBean(EmployeesListBean empListBean) {
    this.empListBean = empListBean;
}

public EmployeeVO getEmployee() {
    return employee;
}

public void setEmployee(EmployeeVO employee) {
    this.employee = employee;
}

public String prepareForEdit() {
    log.debug("prepareForEdit");
    this.employee = 
(EmployeeVO)getEmployeesListBean().getEmployeesModel().getRowData();
    //get Employee from backend
    this.employee = EmployeeService.getEmployee( employee.getId() );
    log.debug("returned employee = "+employee );
    return "success";
}

public String saveAction() {
    //need way to tell "update" vs "insert" ?
    log.debug("In saveAction" );
    EmployeeService.updateEmployee(employee);
    return "success";
}

The prepareForEdit method is called from a link next to the name of each 
employee on the employees.jsp. After clicking the link the success result will 
navigate you to emloyeeForm.jsp...

The part I'm not so sure about is the setup of the EmployeeAction.. I'm having 
to initialize EmployeeVO employee = new EmployeeVO(); 
because if I don't have this, I'll end up with conversion errors since the 
employee is null when the form submits. Is it better to not create this new 
instance and maybe use saveState on the form instead?

Also on the form I'm doing...

<h:inputText value="#{employeeAction.employee.name}"/>

I like the above since it saves me from having to add extra set/gets in my 
EmployeeAction class to deal with the EmployeeVO nested inside of 
EmployeeAction.However maybe there are some major drawbacks to doing it that 
way I've implemented it?

Thanks for any comments.

Reply via email to