随笔-78  评论-682  文章-3  trackbacks-3

附录

(1)    Struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>

  <form-beans>

    <form-bean name="LoginForm" type="issuecontrol.actionform.LoginForm" />

    <form-bean name="NewUserForm" type="issuecontrol.actionform.NewUserForm"/>

    <form-bean name="BaseForm" type="issuecontrol.actionform.BaseForm"/>

       <form-bean name="loginActionForm" type="issuecontrol.actionform.LoginActionForm" />

    <form-bean name="componentActionForm" type="issuecontrol.actionform.ComponentActionForm" />

    <form-bean name="environmentActionForm" type="issuecontrol.actionform.EnvironmentActionForm" />

    <form-bean name="flagActionForm" type="issuecontrol.actionform.FlagActionForm" />

    <form-bean name="issueActionForm" type="issuecontrol.actionform.IssueActionForm" />

    <form-bean name="logActionForm" type="issuecontrol.actionform.LogActionForm" />

    <form-bean name="priorityActionForm" type="issuecontrol.actionform.PriorityActionForm" />

    <form-bean name="typeActionForm" type="issuecontrol.actionform.TypeActionForm" />

    <form-bean name="issueDataActionForm" type="issuecontrol.actionform.IssueDataActionForm"/>

  </form-beans>

  <global-forwards>

    <forward name="loginSuccess" path="/main.jsp" />

    <forward name="newUser" path="/newUser.jsp"/>

    <forward name="updateUser" path="/newUser.jsp"/>

    <forward name="deleteUser" path="/deleteUser.jsp"/>

    <forward name="login" path="/index.jsp"/>

    <forward name="success" path="/message.jsp"/>

       <forward name="operationSuccess" path="/Success.jsp" />

    <forward name="error" path="/error.jsp"/>

    <forward name="viewUser" path="/viewUser.jsp"/>

  </global-forwards>

  <action-mappings>

    <action name="LoginForm" type="issuecontrol.action.MainAction" validate="true" scope="session" input="/index.jsp" path="/login" />

    <action path="/newUser" name="BaseForm" type="issuecontrol.action.MainAction" validate="false" scope="request" input="/main.jsp"/>

    <action path="/doNewUser" name="NewUserForm" type="issuecontrol.action.MainAction" validate="true" scope="request" input="/newUser.jsp"/>

    <action path="/viewUser" name="BaseForm" type="issuecontrol.action.MainAction" validate="false" scope="request" input="/main.jsp"/>

    <action path="/updateUser" name="BaseForm" type="issuecontrol.action.MainAction" validate="false" scope="request" input="/viewUser.jsp"/>

    <action path="/doUpdateUser" name="NewUserForm" type="issuecontrol.action.MainAction" validate="true" scope="request" input="/newUser.jsp"/>

    <action path="/deleteUser" name="BaseForm" type="issuecontrol.action.MainAction" validate="false" scope="request" input="/viewUser.jsp"/>

    <action path="/doDeleteUser" name="BaseForm" type="issuecontrol.action.MainAction" validate="false" scope="request" input="/deleteUser.jsp"/>

    <action name="issueActionForm" type="issuecontrol.action.IssueAction" validate="false" scope="request" path="/issueAction">

      <forward name="viewIssue" path="/IssueList.jsp" />

      <forward name="viewIssueDetail" path="/IssueDetail.jsp" />

      <forward name="issueData" path="/IssueData.jsp" />

    </action>

       <action name="issueDataActionForm" type="issuecontrol.action.IssueAction" validate="false" scope="request" path="/issueDataAction"/>

  </action-mappings>

  <message-resources parameter="/ApplicationResources"/>

</struts-config>

(2)    IssueAction.java

package issuecontrol.action;

import org.apache.struts.action.*;

import javax.servlet.http.*;

import issuecontrol.actionform.*;

import java.util.Locale;

import org.apache.struts.util.MessageResources;

import issuecontrol.model.*;

import issuecontrol.objects.*;

import issuecontrol.view.*;

import java.util.*;

import java.text.DateFormat;

 

public class IssueAction extends Action {

  public ActionForward perform(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {

    String action = "view";

    if(httpServletRequest.getParameter("action")!=null) action = httpServletRequest.getParameter("action").trim();

    String viewPage=httpServletRequest.getParameter("viewPage");

    ArrayList runningErrors = new ArrayList();

    int pageNum=1;

    String address = "viewIssue";

    //查看所有的Issue

    if(("view".equals(action)) || (action == null)) {

      address = "viewIssue";

      if((viewPage!= null)&&(viewPage.length()!= 0)){

        pageNum = Integer.parseInt(viewPage);

      }

      int pageSize=8;

      //1.先进行参数分析

      //2.下面调用逻辑层方法得到显示的对象

      PageView selectPageView=IssueBean.getIssueByPage(new Page(pageNum,pageSize));

      //3.放到request中然后转发

      httpServletRequest.setAttribute("items",selectPageView.getItems());

      httpServletRequest.setAttribute("selectPageView",selectPageView);

      httpServletRequest.setAttribute("action",action);

    }

    //查看单个Issue及其IssueDatasChangeLogs

    else if("viewDetail".equals(action)) {

      String issueId = "";

      if(httpServletRequest.getParameter("issueId")!=null) issueId = httpServletRequest.getParameter("issueId").trim();

      IssueActionForm issueActionForm = IssueBean.getIssueById(issueId);

      if(issueActionForm == null) {

        runningErrors.add(new ActionError("Issue(IssueID=" + issueId + ") not found."));

        httpServletRequest.setAttribute("runningErrors",runningErrors);

        address = "error";

      }

      else {

        httpServletRequest.setAttribute("issueActionForm",issueActionForm);

        issueActionForm.setActionType(action);

        address = "viewIssueDetail";

      }

    }

    //新建一个Issue

    else if("create".equals(action)) {

      address = "viewIssueDetail";

      httpServletRequest.setAttribute("typeActionForms",IssueBean.getAllTypes());

      httpServletRequest.setAttribute("componentActionForms",IssueBean.getAllComponents());

      httpServletRequest.setAttribute("flagActionForms",IssueBean.getAllFlags());

      httpServletRequest.setAttribute("environmentActionForms",IssueBean.getAllEnvironments());

      httpServletRequest.setAttribute("priorityActionForms",IssueBean.getAllPriorities());

      httpServletRequest.setAttribute("forward","/issueAction.do?action=save");

    }

    //编辑已有的Issue

    else if("edit".equals(action)) {

      address = "viewIssueDetail";

      String issueId = "";

      if(httpServletRequest.getParameter("issueId") != null) issueId = httpServletRequest.getParameter("issueId").trim();

      IssueActionForm issueActionForm = IssueBean.getIssueById(issueId);

      if(issueActionForm == null) {

        runningErrors.add(new ActionError("Issue(IssueID=" + issueId + ") not found."));

        httpServletRequest.setAttribute("runningErrors",runningErrors);

        address = "error" ;

      }

      else {

        address = "viewIssueDetail";

        issueActionForm.setActionType(action);

        httpServletRequest.setAttribute("issueActionForm",issueActionForm);

        httpServletRequest.setAttribute("typeActionForms",IssueBean.getAllTypes());

        httpServletRequest.setAttribute("componentActionForms",IssueBean.getAllComponents());

        httpServletRequest.setAttribute("flagActionForms",IssueBean.getAllFlags());

        httpServletRequest.setAttribute("environmentActionForms",IssueBean.getAllEnvironments());

        httpServletRequest.setAttribute("priorityActionForms",IssueBean.getAllPriorities());

        httpServletRequest.setAttribute("forward","/issueAction.do?action=update");

      }

    }

    //删除对应的Issue

    else if("delete".equals(action)) {

      String issueId = "";

      if(httpServletRequest.getParameter("issueId")!=null) issueId = httpServletRequest.getParameter("issueId").trim();

      IssueBean.delIssueById(issueId);

      httpServletRequest.setAttribute("message","Issue(IssueID="+issueId+") have been deleted.");

      address = "operationSuccess";

    }

    //保存新建的Issue

    else if("save".equals(action)) {

      IssueActionForm issueActionForm = (IssueActionForm)actionForm;

      String type = issueActionForm.getActionType();

      if(type.equals("")) type = "create";

      if("create".equals(type) || "".equals(type)) {

        IssueBean.addOneIssue(issueActionForm);

        httpServletRequest.setAttribute("message","New Issue(IssueID=" +  issueActionForm.getIssueId()+ ") have been created.");

      }

      else if("edit".equals(type)) {

        IssueBean.updateIssue(issueActionForm);

        httpServletRequest.setAttribute("message","New Issue(IssueID=" +  issueActionForm.getIssueId()+ ") have been updated.");

      }

      address = "operationSuccess";

    }

    //新建IssueData

    else if("createIssueData".equals(action)) {

      String issueId = "";

      if(httpServletRequest.getParameter("issueId")!=null)

        issueId = httpServletRequest.getParameter("issueId");

      IssueActionForm issueActionForm = IssueBean.getIssueById(issueId);

      if(issueActionForm == null) {

        runningErrors.add(new ActionError("Issue(IssueID=" + issueId + ") not found."));

        httpServletRequest.setAttribute("runningErrors",runningErrors);

        address = "error" ;

      }

      else {

        address = "issueData";

        DateFormat dateFormat = DateFormat.getInstance();

        IssueDataActionForm issueDataActionForm = new IssueDataActionForm();

        issueDataActionForm.setActionType(action);

        issueDataActionForm.setStartDay(ExtendCalendar.getDate("yyyy/MM/dd"));

        String name = (String)httpServletRequest.getSession().getAttribute("userName");

        UserBean userBean = new UserBean();

        try {

          NewUserForm userForm = userBean.getUserByName(name);

          httpServletRequest.setAttribute("userForm",userForm);

        }

        catch (Exception ex) {

          System.out.println("Exception:" + ex.getMessage());

        }

        httpServletRequest.setAttribute("issueActionForm",issueActionForm);

        httpServletRequest.setAttribute("issueDataActionForm",issueDataActionForm);

        httpServletRequest.setAttribute("priorityActionForms",IssueBean.getAllPriorities());

        httpServletRequest.setAttribute("flagActionForms",IssueBean.getAllFlags());

      }

    }

    //保存新建的IssueData

    else if("saveIssueData".equals(action)) {

      IssueDataActionForm issueDataActionForm = (IssueDataActionForm)actionForm;

      String type = issueDataActionForm.getActionType();

      if(type.equals("") || (type==null)) type = "createIssueData";

      if("createIssueData".equals(type)) {

        issueDataActionForm.setUser(httpServletRequest.getParameter("userName"));

        issueDataActionForm.setUserId(httpServletRequest.getParameter("userId"));

        issueDataActionForm.setIssueId(httpServletRequest.getParameter("issueId"));

        IssueBean.addOneIssueData(issueDataActionForm);

        httpServletRequest.setAttribute("message","New IssueData have been created.");

        address = "operationSuccess";

      }

      else if("editIssueData".equals(type)) {

        IssueBean.updateIssueData(issueDataActionForm);

        LogActionForm logActionForm = new LogActionForm();

        logActionForm.setChangeTo(issueDataActionForm.getEndDay());

        logActionForm.setIssueId(issueDataActionForm.getIssueId());

        logActionForm.setOriginal(httpServletRequest.getParameter("original"));

        logActionForm.setReason(httpServletRequest.getParameter("reason"));

        logActionForm.setUser(issueDataActionForm.getUserId());

        httpServletRequest.setAttribute("message","IssueData have been updated.");

        address = "operationSuccess";

      }

    }

    //编辑IssueData

    else if("editIssueData".equals(action)) {

      String issueDataId = "";

      if(httpServletRequest.getParameter("issueDataId")!=null)

        issueDataId = httpServletRequest.getParameter("issueDataId");

      IssueDataActionForm issueDataActionForm = IssueBean.getIssueDataById(issueDataId);

      if(issueDataActionForm!=null) {

        address = "issueData";

        issueDataActionForm.setActionType(action);

        LogActionForm logActionForm = new LogActionForm();

        logActionForm.setIssueId(issueDataActionForm.getIssueId());

        logActionForm.setOriginal(issueDataActionForm.getEndDay());

        httpServletRequest.setAttribute("logActionForm",logActionForm);

        IssueActionForm issueActionForm = IssueBean.getIssueById(issueDataActionForm.getIssueId());

        if(issueActionForm!=null) httpServletRequest.setAttribute("issueActionForm",issueActionForm);

        httpServletRequest.setAttribute("issueDataActionForm",issueDataActionForm);

        httpServletRequest.setAttribute("priorityActionForms",IssueBean.getAllPriorities());

        httpServletRequest.setAttribute("flagActionForms",IssueBean.getAllFlags());

      }

      else {

        runningErrors.add(new ActionError("IssueData(IssueDataID=" + issueDataId + ") not found."));

        httpServletRequest.setAttribute("runningErrors",runningErrors);

        address = "error";

      }

    }

    //删除IssueData

    else if("deleteIssueData".equals(action)) {

      String issueDataId = "";

      if(httpServletRequest.getParameter("issueDataId")!=null) {

        issueDataId = httpServletRequest.getParameter("issueDataId");

        IssueBean.delOneIssueData(issueDataId);

        httpServletRequest.setAttribute("message","The issueData has been deleted.");

        address = "operationSuccess";

      }

      else {

        runningErrors.add(new ActionError("IssueData(IssueDataID=" + issueDataId + ") not found."));

        httpServletRequest.setAttribute("runningErrors",runningErrors);

        address = "error";

      }

    }

    return actionMapping.findForward(address);

  }

}

(3)    IssueBean.java

package issuecontrol.model;

/**

 * Issue操作类

 */

import net.sf.hibernate.*;

import issuecontrol.objects.*;

import java.util.*;

import issuecontrol.view.*;

import issuecontrol.actionform.*;

import java.util.ArrayList;

 

public class IssueBean {

  public static PageView getIssueByPage(Page thepage) {

    Page selectPage = null;

    try {

      IssueDAO issueDAO= (IssueDAO) DAOFactory.getInstance("IssueDAO");

      selectPage = issueDAO.getIssueByPage(thepage);

      DAOFactory.returnInstance();

    }

    catch (Exception ex) {

      System.out.println("Exception:" + ex.getMessage());

    }

    ArrayList items=new ArrayList(selectPage.getItems());

    for(int i=0;i<items.size();i++)

    {

      IssueView theissueview=new IssueView((Issue)items.get(i));

      items.set(i,theissueview);

    }

    PageView selectPageView=new PageView(selectPage);

    selectPageView.setItems(items);

    return selectPageView;

  }

 

  public static void addOneIssue(IssueActionForm issueActionForm) {

    try {

      Issue addIssue = new Issue();

      IssueDAO issueDAO= (IssueDAO) DAOFactory.getInstance("IssueDAO");

      addIssue.setComponent(issueDAO.getComponentById(Long.valueOf(issueActionForm.getComponentId())));

      addIssue.setDescription(issueActionForm.getDescription());

      addIssue.setEnvironment(issueDAO.getEnvironmentById(Long.valueOf(issueActionForm.getEnvironmentId())));

      addIssue.setFlag(issueDAO.getFlagById(Long.valueOf(issueActionForm.getFlagId())));

      addIssue.setIssueId(issueActionForm.getIssueId());

      addIssue.setPriority(issueDAO.getPriorityById(Long.valueOf(issueActionForm.getPriorityId())));

      addIssue.setTitle(issueActionForm.getTitle());

      addIssue.setType(issueDAO.getTypeById(Long.valueOf(issueActionForm.getTypeId())));

      issueDAO.addIssue(addIssue);

      DAOFactory.returnInstance();

    }

    catch (Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

  }

 

  public static void addOneIssueData(IssueDataActionForm issueDataActionForm) {

    try {

      IssueDAO issueDAO = (IssueDAO)DAOFactory.getInstance("IssueDAO");

      UserDAO userDAO = (UserDAO)DAOFactory.getInstance("UserDAO");

      Issue selectIssue = issueDAO.getIssueById(issueDataActionForm.getIssueId());

      Issuedata addIssueData = new Issuedata();

      if(issueDataActionForm.getEndDay()!=null) addIssueData.setEndDay(new Date(issueDataActionForm.getEndDay()));

      if(issueDataActionForm.getFlagId()!=null) addIssueData.setFlag(issueDAO.getFlagById(Long.valueOf(issueDataActionForm.getFlagId())));

      if(issueDataActionForm.getIssueId()!=null) addIssueData.setIssue(issueDAO.getIssueById(issueDataActionForm.getIssueId()));

      if(issueDataActionForm.getPriorityId()!=null) addIssueData.setPriority(issueDAO.getPriorityById(Long.valueOf(issueDataActionForm.getPriorityId())));

      if(issueDataActionForm.getStartDay()!=null) addIssueData.setStartDay(new Date(issueDataActionForm.getStartDay()));

      if(issueDataActionForm.getSubmitDay()!=null) addIssueData.setSubmitDay(new Date(issueDataActionForm.getSubmitDay()));

      if(issueDataActionForm.getUserId()!=null) addIssueData.setUser(userDAO.getUserById(Long.valueOf(issueDataActionForm.getUserId())));

      issueDAO.addOneIssueData(selectIssue,addIssueData);

      DAOFactory.returnInstance();

    }

    catch(Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

  }

 

  public static void addOneLog(IssueActionForm issueActionForm,LogActionForm logActionForm) {

    try {

      IssueDAO issueDAO= (IssueDAO) DAOFactory.getInstance("IssueDAO");

      Issue theIssue = issueDAO.getIssueById(issueActionForm.getIssueId());

      Log theLog = new Log();

      theLog.setIssue(issueDAO.getIssueById(issueActionForm.getIssueId()));

      theLog.setReason(logActionForm.getReason());

      issueDAO.addOneLog(theIssue, theLog);

      DAOFactory.returnInstance();

    }

    catch (Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

  }

 

  public static void delIssueById(String issueId) {

    try {

      IssueDAO issueDAO = (IssueDAO)DAOFactory.getInstance("IssueDAO");

      issueDAO.delIssueById(issueId);

    }

    catch (Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

  }

 

  public static void delOneIssueData(String issueDataId) {

    try {

      IssueDAO issueDAO = (IssueDAO)DAOFactory.getInstance("IssueDAO");

      issueDAO.delOneIssueData(Long.valueOf(issueDataId));

      DAOFactory.returnInstance();

    }

    catch (Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

  }

 

  public static void delOneLog(String logId) {

    try{

      IssueDAO issueDAO = (IssueDAO)DAOFactory.getInstance("IssueDAO");

      issueDAO.delOneLog(Long.valueOf(logId));

      DAOFactory.returnInstance();

    }catch(Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

  }

 

  public static IssueActionForm getIssueById(String issueId) {

    IssueActionForm issueActionForm = new IssueActionForm();

    try {

      IssueDAO issueDAO = (IssueDAO)DAOFactory.getInstance("IssueDAO");

      Issue selectIssue = issueDAO.getIssueById(issueId);

      issueActionForm.setComponent(selectIssue.getComponent().getComponent());

      issueActionForm.setComponentId(String.valueOf(selectIssue.getComponent().getComponentId()));

      issueActionForm.setDescription(selectIssue.getDescription());

      issueActionForm.setEnvironment(selectIssue.getEnvironment().getEnvironment());

      issueActionForm.setEnvironmentId(String.valueOf(selectIssue.getEnvironment().getEnvironmentId()));

      issueActionForm.setFlag(selectIssue.getFlag().getFlag());

      issueActionForm.setFlagId(String.valueOf(selectIssue.getFlag().getFlagId()));

      issueActionForm.setIssueId(selectIssue.getIssueId());

      issueActionForm.setPriority(selectIssue.getPriority().getPriority());

      issueActionForm.setPriorityId(String.valueOf(selectIssue.getPriority().getPriorityId()));

      issueActionForm.setTitle(selectIssue.getTitle());

      issueActionForm.setType(selectIssue.getType().getType());

      issueActionForm.setTypeId(String.valueOf(selectIssue.getType().getTypeId()));

      if(selectIssue.getIssueDatas()!=null) {

        Issuedata[] issuedatas = (Issuedata[])selectIssue.getIssueDatas().toArray(new Issuedata[0]);

        for(int i=0;i<issuedatas.length;i++) {

          IssueDataActionForm issueDataActionForm = new IssueDataActionForm();

          issueDataActionForm.setEndDay(String.valueOf(issuedatas[i].getEndDay()));

          issueDataActionForm.setFlag(issuedatas[i].getFlag().getFlag());

          issueDataActionForm.setId(String.valueOf(issuedatas[i].getId()));

          issueDataActionForm.setIssueId(issuedatas[i].getIssueId());

          issueDataActionForm.setPriority(issuedatas[i].getPriority().getPriority());

          issueDataActionForm.setStartDay(String.valueOf(issuedatas[i].getStartDay()));

          issueDataActionForm.setSubmitDay(String.valueOf(issuedatas[i].getSubmitDay()));

          issueDataActionForm.setUser(issuedatas[i].getUser().getName());

          issueActionForm.getIssueDatas().add(issueDataActionForm);

        }

      }

      if(selectIssue.getLogs()!=null) {

        Log[] logs = (Log[])selectIssue.getLogs().toArray(new Log[0]);

        for(int i=0;i<logs.length;i++) {

          LogActionForm logActionForm = new LogActionForm();

          logActionForm.setChangeTo(logs[i].getChangeTo().toString());

          logActionForm.setId(String.valueOf(logs[i].getId()));

          logActionForm.setIssueId(logs[i].getIssue().getIssueId());

          logActionForm.setOriginal(logs[i].getOriginal().toString());

          logActionForm.setReason(logs[i].getReason());

          logActionForm.setUser(logs[i].getUser().getName());

          issueActionForm.getLogDatas().add(logActionForm);

        }

      }

      DAOFactory.returnInstance();

    }

    catch (Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

      return null;

    }

    return issueActionForm;

  }

 

  public static TypeActionForm getTypeById(String typeId) {

    TypeActionForm typeActionForm = new TypeActionForm();

    try {

      IssueDAO issueDAO = (IssueDAO)DAOFactory.getInstance("IssueDAO");

      Type selectType = issueDAO.getTypeById(Long.valueOf(typeId));

      typeActionForm.setType(selectType.getType());

      typeActionForm.setTypeId(String.valueOf(selectType.getTypeId()));

      DAOFactory.returnInstance();

    }

    catch (Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

    return typeActionForm;

  }

 

  public static ComponentActionForm getComponentById(String componentId) {

    ComponentActionForm componentActionForm = new ComponentActionForm();

    try {

      IssueDAO issueDAO = (IssueDAO)DAOFactory.getInstance("IssueDAO");

      Component selectComponent = issueDAO.getComponentById(Long.valueOf(componentId));

      componentActionForm.setComponent(selectComponent.getComponent());

      componentActionForm.setComponentId(String.valueOf(selectComponent.getComponentId()));

      DAOFactory.returnInstance();

    }

    catch (Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

    return componentActionForm;

  }

 

  public static FlagActionForm getFlagById(String flagId) {

    FlagActionForm flagActionForm = new FlagActionForm();

    try {

      IssueDAO issueDAO = (IssueDAO)DAOFactory.getInstance("IssueDAO");

      Flag selectFlag = issueDAO.getFlagById(Long.valueOf(flagId));

      flagActionForm.setFlag(selectFlag.getFlag());

      flagActionForm.setFlagId(String.valueOf(selectFlag.getFlagId()));

      DAOFactory.returnInstance();

    }

    catch (Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

    return flagActionForm;

  }

 

  public static EnvironmentActionForm getEnvironmentById(String environmentId) {

    EnvironmentActionForm environmentAcrionForm = new EnvironmentActionForm();

    try {

      IssueDAO issueDAO = (IssueDAO)DAOFactory.getInstance("IssueDAO");

      Environment selectEnvironment = issueDAO.getEnvironmentById(Long.valueOf(environmentId));

      environmentAcrionForm.setEnvironment(selectEnvironment.getEnvironment());

      environmentAcrionForm.setEnvironmentId(String.valueOf(selectEnvironment.getEnvironmentId()));

      DAOFactory.returnInstance();

    }

    catch (Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

    return environmentAcrionForm;

  }

 

  public static PriorityActionForm getPriorityById(String priorityId) {

    PriorityActionForm priorityActionForm = new PriorityActionForm();

    try {

      IssueDAO issueDAO = (IssueDAO)DAOFactory.getInstance("IssueDAO");

      Priority selectPriority = issueDAO.getPriorityById(Long.valueOf(priorityId));

      priorityActionForm.setPriority(selectPriority.getPriority());

      priorityActionForm.setPriorityId(String.valueOf(selectPriority.getPriorityId()));

      DAOFactory.returnInstance();

    }

    catch (Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

    return priorityActionForm;

  }

 

  public static LogActionForm getLogById(String logId) {

    LogActionForm logActionForm = new LogActionForm();

    try {

      IssueDAO issueDAO = (IssueDAO)DAOFactory.getInstance("IssueDAO");

      Log selectLog = issueDAO.getLogById(Long.valueOf(logId));

      logActionForm.setId(String.valueOf(selectLog.getId()));

      logActionForm.setIssueId(String.valueOf(selectLog.getIssue().getIssueId()));

      logActionForm.setOriginal(selectLog.getOriginal().toString());

      logActionForm.setReason(selectLog.getReason());

      logActionForm.setUser(String.valueOf(selectLog.getUser().getUserId()));

      logActionForm.setChangeTo(selectLog.getChangeTo().toString());

      DAOFactory.returnInstance();

    }

    catch (Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

    return logActionForm;

  }

 

  public static ComponentActionForm[] getAllComponents() {

    Collection collection = new ArrayList();

    try {

      IssueDAO issueDAO = (IssueDAO)DAOFactory.getInstance("IssueDAO");

      Iterator iterator = issueDAO.getAllComponents().iterator();

      DAOFactory.returnInstance();

      while(iterator.hasNext()) {

        Component selectComponent = (Component)iterator.next();

        ComponentActionForm componentActionForm = new ComponentActionForm();

        componentActionForm.setComponent(selectComponent.getComponent());

        componentActionForm.setComponentId(String.valueOf(selectComponent.getComponentId()));

        collection.add(componentActionForm);

      }

    }

    catch (Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

    return (ComponentActionForm[])collection.toArray(new ComponentActionForm[0]);

  }

 

  public static EnvironmentActionForm[] getAllEnvironments() {

    Collection collection = new ArrayList();

    try {

      IssueDAO issueDAO = (IssueDAO)DAOFactory.getInstance("IssueDAO");

      Iterator iterator = issueDAO.getAllEnvironments().iterator();

      DAOFactory.returnInstance();

      while(iterator.hasNext()) {

        Environment selectEnvironment = (Environment)iterator.next();

        EnvironmentActionForm environmentActionForm = new EnvironmentActionForm();

        environmentActionForm.setEnvironment(selectEnvironment.getEnvironment());

        environmentActionForm.setEnvironmentId(String.valueOf(selectEnvironment.getEnvironmentId()));

        collection.add(environmentActionForm);

      }

    }

    catch (Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

    return (EnvironmentActionForm[])collection.toArray(new EnvironmentActionForm[0]);

  }

 

  public static FlagActionForm[] getAllFlags() {

    Collection collection = new ArrayList();

    try {

      IssueDAO issueDAO = (IssueDAO)DAOFactory.getInstance("IssueDAO");

      Iterator iterator = issueDAO.getAllFlags().iterator();

      DAOFactory.returnInstance();

      while(iterator.hasNext()) {

        Flag selectFlag = (Flag)iterator.next();

        FlagActionForm flagActionForm = new FlagActionForm();

        flagActionForm.setFlag(selectFlag.getFlag());

        flagActionForm.setFlagId(String.valueOf(selectFlag.getFlagId()));

        collection.add(flagActionForm);

      }

    }

    catch (Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

    return (FlagActionForm[])collection.toArray(new FlagActionForm[0]);

  }

 

  public static PriorityActionForm[] getAllPriorities() {

    Collection collection = new ArrayList();

    try {

      IssueDAO issueDAO = (IssueDAO)DAOFactory.getInstance("IssueDAO");

      Iterator iterator = issueDAO.getAllPrioritys().iterator();

      DAOFactory.returnInstance();

      while(iterator.hasNext()) {

        Priority selectPriority = (Priority)iterator.next();

        PriorityActionForm priorityActionForm = new PriorityActionForm();

        priorityActionForm.setPriority(selectPriority.getPriority());

        priorityActionForm.setPriorityId(String.valueOf(selectPriority.getPriorityId()));

        collection.add(priorityActionForm);

      }

    }

    catch (Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

    return (PriorityActionForm[])collection.toArray(new PriorityActionForm[0]);

  }

 

  public static TypeActionForm[] getAllTypes() {

    Collection collection = new ArrayList();

    try {

      IssueDAO issueDAO = (IssueDAO)DAOFactory.getInstance("IssueDAO");

      Iterator iterator = issueDAO.getAllTypes().iterator();

      DAOFactory.returnInstance();

      while(iterator.hasNext()) {

        Type selectType = (Type)iterator.next();

        TypeActionForm typeActionForm = new TypeActionForm();

        typeActionForm.setType(selectType.getType());

        typeActionForm.setTypeId(String.valueOf(selectType.getTypeId()));

        collection.add(typeActionForm);

      }

    }

    catch (Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

    return (TypeActionForm[])collection.toArray(new TypeActionForm[0]);

  }

 

  public static void updateIssue(IssueActionForm issueActionForm) {

    try {

      IssueDAO issueDAO= (IssueDAO) DAOFactory.getInstance("IssueDAO");

      Issue updateIssue = issueDAO.getIssueById(issueActionForm.getIssueId());

      updateIssue.setComponent(issueDAO.getComponentById(Long.valueOf(issueActionForm.getComponentId())));

      updateIssue.setDescription(issueActionForm.getDescription());

      updateIssue.setEnvironment(issueDAO.getEnvironmentById(Long.valueOf(issueActionForm.getEnvironmentId())));

      updateIssue.setFlag(issueDAO.getFlagById(Long.valueOf(issueActionForm.getFlagId())));

      updateIssue.setPriority(issueDAO.getPriorityById(Long.valueOf(issueActionForm.getPriorityId())));

      updateIssue.setTitle(issueActionForm.getTitle());

      updateIssue.setType(issueDAO.getTypeById(Long.valueOf(issueActionForm.getTypeId())));

      issueDAO.updateIssue(updateIssue);

      DAOFactory.returnInstance();

    }

    catch (Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

  }

 

  public static IssueDataActionForm getIssueDataById(String issueDataId) {

    IssueDataActionForm issueDataActionForm =  new IssueDataActionForm();

    try {

      IssueDAO issueDAO = (IssueDAO)DAOFactory.getInstance("IssueDAO");

      Issuedata selectIssuedata = issueDAO.getIssueDataById(Long.valueOf(issueDataId));

      issueDataActionForm.setEndDay(String.valueOf(selectIssuedata.getEndDay()));

      issueDataActionForm.setFlag(selectIssuedata.getFlag().getFlag());

      issueDataActionForm.setFlagId(String.valueOf(selectIssuedata.getFlag().getFlagId()));

      issueDataActionForm.setId(String.valueOf(selectIssuedata.getId()));

      issueDataActionForm.setIssueId(selectIssuedata.getIssue().getIssueId());

      issueDataActionForm.setPriority(selectIssuedata.getPriority().getPriority());

      issueDataActionForm.setPriorityId(String.valueOf(selectIssuedata.getPriority().getPriorityId()));

      issueDataActionForm.setStartDay(String.valueOf(selectIssuedata.getStartDay()));

      issueDataActionForm.setSubmitDay(String.valueOf(selectIssuedata.getSubmitDay()));

      issueDataActionForm.setUser(selectIssuedata.getUser().getName());

      issueDataActionForm.setUserId(String.valueOf(selectIssuedata.getUser().getUserId()));

      DAOFactory.returnInstance();

    }catch(Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

    return issueDataActionForm;

  }

  public static void updateIssueData(IssueDataActionForm issueDataActionForm) {

    try {

      IssueDAO issueDAO = (IssueDAO)DAOFactory.getInstance("IssueDAO");

      UserDAO userDAO = (UserDAO)DAOFactory.getInstance("UserDAO");

      Issuedata issuedata = issueDAO.getIssueDataById(Long.valueOf(issueDataActionForm.getId()));

      issuedata.setEndDay(new Date(issueDataActionForm.getEndDay()));

      issuedata.setFlag(issueDAO.getFlagById(Long.valueOf(issueDataActionForm.getFlagId())));

      issuedata.setId(Long.valueOf(issueDataActionForm.getId()));

      issuedata.setIssue(issueDAO.getIssueById(issueDataActionForm.getIssueId()));

      issuedata.setIssueId(issueDataActionForm.getIssueId());

      issuedata.setPriority(issueDAO.getPriorityById(Long.valueOf(issueDataActionForm.getPriorityId())));

      issuedata.setStartDay(new Date(issueDataActionForm.getStartDay()));

      issuedata.setSubmitDay(new Date(issueDataActionForm.getSubmitDay()));

      issuedata.setUser(userDAO.getUserById(Long.valueOf(issueDataActionForm.getUserId())));

      issueDAO.updateOneIssueData(issuedata);

      DAOFactory.returnInstance();

    }catch(Exception ex) {

      System.out.println("HibernateException:" + ex.getMessage());

    }

  }

}

(4)    IssueDetail.jsp

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

<%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

<%@ page contentType="text/html; charset=GBK" %>

<template:insert template="header.jsp">

<template:put name="title">end-to-end</template:put>

</template:insert>

<center>

<table width="100%" border="0" cellpadding="1">

  <TR>

    <TD width="250" valign="top"><template:insert template="function.jsp"/>

    </TD>

    <TD><html:form action="/issueAction.do?action=save" method="POST">