十四、增加EmployeeService实现用户添加

1.添加EmployeeAction,用来处理mainFrame界面中,用户提出的增删查改请求

  1.1com.myz.web.actions包下新建EmployeeAction

package com.myz.web.actions;

import java.util.Date;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.myz.domain.Employee;
import com.myz.service.interfaces.DepartmentServiceInterface;
import com.myz.service.interfaces.EmployeeServiceInterface;
import com.myz.web.forms.EmployeeForm;

public class EmployeeAction extends DispatchAction {//跳往添加雇员界面
    public ActionForward goAddEmp(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        // TODO Auto-generated method stub
        return mapping.findForward("goAddEmp");
    }
    
}

  1.2struts-config.xml中配置EmployeeAction

<action path="/employee" parameter="flag" name="employeeForm">
        <!-- 跳往雇员添加界面 -->
            <forward name="goAddEmp" path="/WEB-INF/addEmpUI.jsp"></forward>
        </action>

  1.3applicationContext.xml中配置EmployeeAction

<!-- 配置EmployeeAction -->
    <bean name="/employee" class="com.myz.web.actions.EmployeeAction" scope="prototype"></bean>

  1.4WEB-INF目录下新建addEmpUI.jsp

<body>
    <h1>添加雇员</h1>
    <form action="${pageContext.request.contextPath}/employee.do?flag=addEmp"" method="post">
    <table>
        <tr><td>id:</td><td><input type="text" name="id"></td></tr>
        <tr><td>名字:</td><td><input type="text" name="name"></td></tr>
        <tr><td>邮件:</td><td><input type="text" name="email"></td></tr>
        <tr><td>密码:</td><td><input type="password" name="password"></td></tr>
        <tr><td>grade:</td><td><input type="text" name="grade"></td></tr>
        <tr><td>工资:</td><td><input type="text" name="salary"></td></tr>
        
        <tr><td>部门:</td><td>
            <select name="departmentid">
                <option value="1">财务部</option>
                <option value="2">人事部</option>
            </select>
        </td></tr>
        
        <tr><td><input type="submit" value="登录"></td><td><input type="reset" value="重置"></td></tr>
    </table>
        
    </form>
  </body>

  1.5完善EmployeeForm,以便addEmpUI.jsp的提交信息能够填充进去

package com.myz.web.forms;

import org.apache.struts.action.ActionForm;

public class EmployeeForm extends ActionForm {
    //属性名称与addEmpUI.jsp中的控件名称一样
    private Integer id;
    private String password;
    private String email;
    private Integer grade;
    private String name;
    private float salary;
    private Integer departmentid;
    
    public String getEmail() {
        return email;
    }
    public Integer getDepartmentid() {
        return departmentid;
    }
    public void setDepartmentid(Integer departmentid) {
        this.departmentid = departmentid;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public Integer getGrade() {
        return grade;
    }
    public void setGrade(Integer grade) {
        this.grade = grade;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public float getSalary() {
        return salary;
    }
    public void setSalary(float salary) {
        this.salary = salary;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

  1.6在struts-config.xml中将Employeeform与EmployeeAction相关联,并增加addEmp函数的forward

<action path="/employee" parameter="flag" name="employeeForm">
            <forward name="goAddEmp" path="/WEB-INF/addEmpUI.jsp"></forward>
        </action>

  1.7EmployeeAction中新建addEmp函数

package com.myz.web.actions;

import java.util.Date;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.myz.domain.Employee;
import com.myz.service.interfaces.DepartmentServiceInterface;
import com.myz.service.interfaces.EmployeeServiceInterface;
import com.myz.web.forms.EmployeeForm;

public class EmployeeAction extends DispatchAction {
    @Resource
    private DepartmentServiceInterface departmentService;
    
    @Resource
    private EmployeeServiceInterface employeeService;
    
    public EmployeeServiceInterface getEmployeeService() {
        return employeeService;
    }

    public void setEmployeeService(EmployeeServiceInterface employeeService) {
        this.employeeService = employeeService;
    }

    public DepartmentServiceInterface getDepartmentService() {
        return departmentService;
    }

    public void setDepartmentService(DepartmentServiceInterface departmentService) {
        this.departmentService = departmentService;
    }

    //跳往添加雇员界面
    public ActionForward goAddEmp(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        // TODO Auto-generated method stub
        return mapping.findForward("goAddEmp");
    }
    
    //添加雇员
    public ActionForward addEmp(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        // TODO Auto-generated method stub
        EmployeeForm employeeForm=(EmployeeForm) form;
        
        Employee e=new Employee();
        e.setName(employeeForm.getName());
        e.setEmail(employeeForm.getEmail());
        e.setGrade(employeeForm.getGrade());
        e.setId(employeeForm.getId());
        e.setHiredate(new Date());
        e.setPassword(employeeForm.getPassword());
        e.setSalary(employeeForm.getSalary());
        System.out.println(employeeForm.getDepartmentid());
        System.out.println(departmentService.getDepartmentById(employeeForm.getDepartmentid()));
        e.setDepartment(departmentService.getDepartmentById(employeeForm.getDepartmentid()));
        
        try {
            employeeService.addEmployee(e);
        } catch (Exception e2) {
            // TODO: handle exception
            return mapping.findForward("err");
        }
        return mapping.findForward("ok");
    }
}

  1.8增加ok.jsp和err.jsp

<body>
    <h2>操作成功!</h2>
    <a href="#">继续添加</a><br/>
    <a href="#">返回主界面</a>
  </body>
<body>
    <h2>操作失败</h2>
    <a href="#">返回主界面</a>
  </body>

   1.9配置全局跳转的forward

<global-forwards>
        <!-- 跳往雇员添加成功界面 -->
            <forward name="ok" path="/WEB-INF/ok.jsp"></forward>
        <!-- 跳往雇员添加失败界面 -->
            <forward name="err" path="/WEB-INF/err.jsp"></forward>
    </global-forwards>

2.测试

  在登录成功后,添加一个员工,在id不重复,其它属性类型填写正确的情况下,将会添加成功!

原文地址:https://www.cnblogs.com/myz666/p/8439247.html