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