随笔-86  评论-767  文章-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 及其 IssueDatas ChangeLogs

    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">

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

    <tr width="100%" height="20" align="left">

              <td colspan="2" class="forumHeaderBackgroundAlternate">

                     <html:hidden name="issueActionForm" property="actionType"/>

                     <logic:equal name="issueActionForm" property="actionType" value="create">

                            Create  new issue:

                     </logic:equal>

                     <logic:equal name="issueActionForm" property="actionType" value="edit">

                            Edit selected issue:

                     </logic:equal>

                     <logic:equal name="issueActionForm" property="actionType" value="viewDetail">

                            View selected issue's detail:

                     </logic:equal>

              </td>

       </tr>

       <tr width="100%" height="20">

                     <td class="Forumrow">IssueID:</td>

                     <td class="Forumrow">

                            <logic:equal name="issueActionForm" property="actionType" value="create">

                                   <html:text property="issueId"/>

                            </logic:equal>

                            <logic:equal name="issueActionForm" property="actionType" value="edit">

                                   <logic:present name="issueActionForm">

                                          <html:text name="issueActionForm" property="issueId"/>

                                   </logic:present>

                                   <logic:notPresent name="issueActionForm">

                                          <b>Error:No issue.</b>

                                   </logic:notPresent>

                            </logic:equal>

                            <logic:equal name="issueActionForm" property="actionType" value="viewDetail">

                                   <logic:present name="issueActionForm">

                                          <bean:write name="issueActionForm" property="issueId" />

                                   </logic:present>

                                   <logic:notPresent name="issueActionForm">

                                          <b>Error:No issue.</b>

                                   </logic:notPresent>

                            </logic:equal>

                     </td>

              </tr>

              <tr width="100%" height="20">

                     <td class="Forumrow">Title:</td>

                     <td class="Forumrow">

                            <logic:equal name="issueActionForm" property="actionType" value="create">

                                   <html:text property="title"/>

                            </logic:equal>

                            <logic:equal name="issueActionForm" property="actionType" value="edit">

                                   <logic:present name="issueActionForm">

                                          <html:text name="issueActionForm" property="title" />

                                   </logic:present>

                                   <logic:notPresent name="issueActionForm">

                                          <b>Error:No issue.</b>

                                   </logic:notPresent>

                            </logic:equal>

                            <logic:equal name="issueActionForm" property="actionType" value="viewDetail">

                                   <logic:present name="issueActionForm">

                                          <bean:write name="issueActionForm" property="title" />

                                   </logic:present>

                                   <logic:notPresent name="issueActionForm">

                                          <b>Error:No issue.</b>

                                   </logic:notPresent>

                            </logic:equal>

                     </td>

              </tr>

              <tr width="100%" height="20">

                     <td class="Forumrow">Description:</td>

                     <td class="Forumrow">

                            <logic:equal name="issueActionForm" property="actionType" value="create">

                                   <html:textarea property="description" rows="8" cols="40"/>

                            </logic:equal>

                <logic:equal name="issueActionForm" property="actionType" value="edit">

                                   <logic:present name="issueActionForm">

                                          <html:textarea property="description" rows="8" cols="40"/>

                                   </logic:present>

                                   <logic:notPresent name="issueActionForm">

                                          <b>Error:No issue.</b>

                                   </logic:notPresent>

                            </logic:equal>

                            <logic:equal name="issueActionForm" property="actionType" value="viewDetail">

                                   <logic:present name="issueActionForm">

                                          <bean:write name="issueActionForm" property="description" />

                                   </logic:present>

                                   <logic:notPresent name="issueActionForm">

                                          <b>Error:No issue.</b>

                                   </logic:notPresent>

                            </logic:equal>

                     </td>

              </tr>

        <tr width="100%" height="20">

               <td class="Forumrow">Type:</td>

            <td class="Forumrow">

                            <logic:notEqual name="issueActionForm" property="actionType" value="viewDetail">

                          <logic:present name="typeActionForms">

                                          <html:select property="typeId" size="1">

                                                 <logic:iterate id="types" name="typeActionForms">

                                                        <option value="<bean:write name="types" property="typeId"/>"><bean:write name="types" property="type" /></option>

                                                 </logic:iterate>

                              </html:select>

                                   </logic:present>

                                   <logic:notPresent name="typeActionForms">

                                          <b>Error:TypeActionForms are not present.</b>

                                   </logic:notPresent>

                            </logic:notEqual>

                            <logic:equal name="issueActionForm" property="actionType" value="viewDetail">

                                   <logic:present name="issueActionForm">

                                          <bean:write name="issueActionForm" property="type" />

                                   </logic:present>

                                   <logic:notPresent name="issueActionForm">

                                          <b>Error:No issue.</b>

                                   </logic:notPresent>

                            </logic:equal>

                     </td>

              </tr>

        <tr width="100%" height="20">

               <td class="Forumrow">Component:</td>

            <td class="Forumrow">

                            <logic:notEqual name="issueActionForm" property="actionType" value="viewDetail">

                          <logic:present name="componentActionForms">

                                          <html:select property="componentId" size="1">

                                                 <logic:iterate id="components" name="componentActionForms">

                                                        <option value="<bean:write name="components" property="componentId"/>"><bean:write name="components" property="component" /></option>

                                                 </logic:iterate>

                              </html:select>

                                   </logic:present>

                                   <logic:notPresent name="componentActionForms">

                                          <b>Error:ComponentActionForms are not present.</b>

                                   </logic:notPresent>

                            </logic:notEqual>

                            <logic:equal name="issueActionForm" property="actionType" value="viewDetail">

                                   <logic:present name="issueActionForm">

                                          <bean:write name="issueActionForm" property="component" />

                                   </logic:present>

                                   <logic:notPresent name="issueActionForm">

                                          <b>Error:No issue.</b>

                                   </logic:notPresent>

                            </logic:equal>

                     </td>

              </tr>

        <tr width="100%" height="20">

               <td class="Forumrow">Environment:</td>

            <td class="Forumrow">

                            <logic:notEqual name="issueActionForm" property="actionType" value="viewDetail">

                          <logic:present name="environmentActionForms">

                                          <html:select property="environmentId" size="1">

                                                 <logic:iterate id="environments" name="environmentActionForms">

                                                        <option value="<bean:write name="environments" property="environmentId"/>"><bean:write name="environments" property="environment" /></option>

                                                 </logic:iterate>

                              </html:select>

                                   </logic:present>

                                   <logic:notPresent name="environmentActionForms">

                                          <b>Error:EnvironmentActionFomrs are not present.</b>

                                   </logic:notPresent>

                            </logic:notEqual>

                            <logic:equal name="issueActionForm" property="actionType" value="viewDetail">

                                   <logic:present name="issueActionForm">

                                          <bean:write name="issueActionForm" property="environment" />

                                   </logic:present>

                                   <logic:notPresent name="issueActionForm">

                                          <b>Error:No issue.</b>

                                   </logic:notPresent>

                            </logic:equal>

                     </td>

              </tr>

        <tr width="100%" height="20">

               <td class="Forumrow">Priority:</td>

            <td class="Forumrow">

                            <logic:notEqual name="issueActionForm" property="actionType" value="viewDetail">

                          <logic:present name="priorityActionForms">

                                          <html:select property="priorityId" size="1">

                                                 <logic:iterate id="priorities" name="priorityActionForms">

                                                        <option value="<bean:write name="priorities" property="priorityId"/>"><bean:write name="priorities" property="priority" /></option>

                                                 </logic:iterate>

                              </html:select>

                                   </logic:present>

                                   <logic:notPresent name="priorityActionForms">

                                          <b>Error:PriorityActionForms are not present.</b>

                                   </logic:notPresent>

                            </logic:notEqual>

                            <logic:equal name="issueActionForm" property="actionType" value="viewDetail">

                                   <logic:present name="issueActionForm">

                                          <bean:write name="issueActionForm" property="priority" />

                                   </logic:present>

                                   <logic:notPresent name="issueActionForm">

                                          <b>Error:No issue.</b>

                                   </logic:notPresent>

                            </logic:equal>

                     </td>

              </tr>

        <tr width="100%" height="20">

               <td class="Forumrow">Flag:</td>

            <td class="Forumrow">

                            <logic:notEqual name="issueActionForm" property="actionType" value="viewDetail">

                          <logic:present name="flagActionForms">

                                          <html:select property="flagId" size="1">

                                                 <logic:iterate id="flags" name="flagActionForms">

                                                        <option value="<bean:write name="flags" property="flagId"/>"><bean:write name="flags" property="flag" /></option>

                                                 </logic:iterate>

                              </html:select>

                                   </logic:present>

                                   <logic:notPresent name="flagActionForms">

                                          <b>Error:FlagActionForms are not present.</b>

                                   </logic:notPresent>

                            </logic:notEqual>

                            <logic:equal name="issueActionForm" property="actionType" value="viewDetail">

                                   <logic:present name="issueActionForm">

                                          <bean:write name="issueActionForm" property="flag" />

                                   </logic:present>

                                   <logic:notPresent name="issueActionForm">

                                          <b>Error:No issue.</b>

                                   </logic:notPresent>

                            </logic:equal>

                     </td>

              </tr>

              <logic:notEqual name="issueActionForm" property="actionType" value="viewDetail">

                     <tr width="100%" height="20"><td class="Forumrow">

                            <html:submit property="submit" value="Submit"/>

                            <html:reset value ="Reset"/>

                     </td></tr>

              </logic:notEqual>

       </table>

  </html:form>

<logic:equal name="issueActionForm" property="actionType" value="viewDetail">

 

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

    <logic:present name="issueActionForm" property="issueDatas">

    <tr width="100%" align="left" height="20">

      <th colspan="7" height="28">IssueData List:</th>

    </tr>

              <tr width="100%" align="center" height="20">

              <td class="forumHeaderBackgroundAlternate" height="23">Priority</td>

              <td class="forumHeaderBackgroundAlternate" height="23">User</td>

              <td class="forumHeaderBackgroundAlternate" height="23">Flag</td>

              <td class="forumHeaderBackgroundAlternate" height="23">StartDay</td>

              <td class="forumHeaderBackgroundAlternate" height="23">EndDay</td>

              <td class="forumHeaderBackgroundAlternate" height="23">SubmitDay</td>

              <td class="forumHeaderBackgroundAlternate" height="23">&nbsp;</td>

              </tr>

              <logic:iterate id="issueData" name="issueActionForm" property="issueDatas">

                     <tr width="100%" align="center" height="20">

                     <td class="Forumrow"><bean:write name="issueData" property="priority" /></td>

                     <td class="Forumrow"><bean:write name="issueData" property="user" /></td>

                     <td class="Forumrow"><bean:write name="issueData" property="flag" /></td>

                     <td class="Forumrow"><bean:write name="issueData" property="startDay" /></td>

                     <td class="Forumrow"><bean:write name="issueData" property="endDay" /></td>

                     <td class="Forumrow"><bean:write name="issueData" property="submitDay" /></td>

                     <td class="Forumrow">

                            <img src="images/edit.gif" border="0" alt="edit selected issuedata">

                            <img src="images/delete.gif" border="0" alt="delete selected issuedata">

                     </td>

                     </tr>

           </logic:iterate>

       </logic:present>

       <logic:notPresent name="issueActionForm" property="issueDatas" >

              <tr width="100%" align="center" height="20"><td colspan="7">

              <p>There is no issuedatas now.</p>

              </td></tr>

       </logic:notPresent>

       </table>

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

    <logic:present name="issueActionForm" property="issueDatas">

    <tr width="100%" align="left" height="20">

      <th colspan="5" height="28">IssueChangeLog List:</th>

    </tr>

              <tr width="100%" align="center" height="20">

              <td class="forumHeaderBackgroundAlternate" height="23">Original</td>

              <td class="forumHeaderBackgroundAlternate" height="23">ChangeTo</td>

              <td class="forumHeaderBackgroundAlternate" height="23">Reason</td>

              <td class="forumHeaderBackgroundAlternate" height="23">User</td>

              <td class="forumHeaderBackgroundAlternate" height="23">&nbsp;</td>

              </tr>

              <logic:iterate id="logData" name="issueActionForm" property="logDatas">

                     <tr width="100%" align="center" height="20">

                     <td class="Forumrow"><bean:write name="logData" property="original" /></td>

                     <td class="Forumrow"><bean:write name="logData" property="changeTo" /></td>

                     <td class="Forumrow"><bean:write name="logData" property="reason" /></td>

                     <td class="Forumrow"><bean:write name="logData" property="user" /></td>

                     <td class="Forumrow">

                            <img src="images/edit.gif" border="0" alt="edit selected issuedata">

                            <img src="images/delete.gif" border="0" alt="delete selected issuedata">

                     </td>

                     </tr>

           </logic:iterate>

       </logic:present>

       <logic:notPresent name="issueActionForm" property="issueDatas" >

              <tr width="100%" align="center" height="20"><td colspan="5">

              <p>There is no issuedatas now.</p>

              </td></tr>

       </logic:notPresent>

       </table>

</logic:equal>

    </TD>

  </TR>

</table>

</center></body>

</html>

posted on 2005-01-27 14:54 eamoi 阅读(2054) 评论(2)  编辑  收藏 所属分类: Java毕业设计文档

评论:
# re: MVC设计模式的Struts技术实现(5) 2005-05-30 19:40 | qiufuguo
不知道你能不能看见,我现在急需要你这片论文的设计模型图,就是5层设计里面各层的模型图,你能帮我提供一下吗?我也是是要论文答辩,我借用了你的代码,但模型图我真的弄不出来,希望你能帮帮我!  回复  更多评论
  
# re: MVC设计模式的Struts技术实现(5) 2005-05-31 14:34 | eamoi
There is no other Model Diagram.That is the all.That moment we didn't draw the diagram you want.  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: