www.pudn.com > employees.rar > AddEmployeeAction.java


package com.wrox;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionError;

public class AddEmployeeAction extends Action {


  public ActionForward execute(ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response)
    throws IOException, ServletException {

    // Default target to success
    String target = new String("success");

    if ( isCancelled(request) ) {

      // Cancel pressed back to employee list
      return (mapping.findForward("success"));
    }

    try {

      Employee employee = new Employee();
      EmployeeForm employeeForm = (EmployeeForm) form;

      employee.setUsername(employeeForm.getUsername());
      employee.setPassword(employeeForm.getPassword());
      employee.setRoleid(new Integer(employeeForm.getRoleid()));
      employee.setName(employeeForm.getName());
      employee.setPhone(employeeForm.getPhone());
      employee.setEmail(employeeForm.getEmail());
      employee.setDepid(new Integer(employeeForm.getDepid()));

      EmployeeData.addEmployee(employee, getDataSource(request));
    }
    catch ( Exception e ) {

      System.err.println("Setting target to error");
      target = new String("error");
      ActionErrors errors = new ActionErrors();

      errors.add(ActionErrors.GLOBAL_ERROR,
        new ActionError("errors.database.error", e.getMessage()));

      // Report any errors
      if ( !errors.isEmpty() ) {

        saveErrors(request, errors);
      }
    }
    // Forward to the appropriate View
    return (mapping.findForward(target));
  }
}