⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addplaneaction.java

📁 eclipse java/jsp 航空管理系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 * @(#)AddPlaneAction.java
 * 
 * 创建日期 2005-4-21
 * Copyright 2005 东软 国际合作事业部. All rights reserved.
 */
package liyong.action;

import liyong.ConnectionPool.*;
import liyong.model.*;
import liyong.form.*;
import java.lang.reflect.InvocationTargetException;
import java.util.Locale;
import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.util.ModuleException;
import org.apache.struts.util.MessageResources;

import zhangchunliang.model.AppMode;

import java.util.*;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Collection;

/**
 * 这个类用来处理View,AddPlaneForm以及页面中的动作事件 
 * 它包过添加,删除,更新,查询等 
 * 动作事件的处理并把处理结果
 * 传递给ViewDAO类来进行数据库操作, 
 * 当动作处理完成后 将要发生跳转, 并跳转到指定的页面
 * 
 * @see View
 * @see ViewDAO
 * @see AddPlaneForm
 * @see Connection
 * @author 李勇
 */

public final class AddPlaneAction extends Action {
    /** 定义日志文件 */
    private Log log = LogFactory.getLog("org.apache.struts.webapp.Example");

    /** 建立数据池对象 */
    DbConnection db = null;

    Connection con = null;

    /** 构造函数进行类的初始化建立数据池连接 */

    /** 处理各种动作事件并跳转到各自的要到的页面 */
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {

        if (!AppMode.getAppMode()) {
            System.out.println("Application is terminated...");
            return mapping.findForward("appInfo");
        }

        Locale locale = getLocale(request);
        MessageResources messages = getResources(request);
        /** 建立会话 */
        HttpSession session = request.getSession();
        /** 建立AddPlaneForm对象 */
        AddPlaneForm m_ViewForm = (AddPlaneForm) form;
        /** 建立List对象myList */
        List myList = new ArrayList();
        /** 建立PlaneFno对象list */
        PlaneFno list = new PlaneFno();
        /**
         * list调用它的getSelect(参数)方法 从flightcom表中得到记录并把它传递给myList
         */
        myList = list.getSelect("flightcom");
        /** 将myList的内容传递给delmodify.jsp中的下拉框myList */
        request.setAttribute("myList", myList);
        /** 建立List对象myList2 */
        List myList2 = new ArrayList();
        /** 建立PlaneFcountry对象list2 */
        PlaneFcountry list2 = new PlaneFcountry();
        /**
         * list2调用它的getSelect(参数,参数)方法 
         * 从country表中得到记录并把它传递给myList2
         */
        myList2 = list2.getSelect("countryname", "country");
        /** 将myList2的内容传递给delmodify.jsp中的下拉框myList2 */
        request.setAttribute("myList2", myList2);
        /** 建立List对象myList3 */
        List myList3 = new ArrayList();
        /** 在myList3中添加数据 */
        myList3.add("请选择");
        myList3.add("出境");
        myList3.add("入境");
        /** 将myList3的内容传递给delmodify.jsp中的下拉框myList3 */
        request.setAttribute("myList3", myList3);
        /** 建立List对象myList4 */
        List myList4 = new ArrayList();
        /** 建立PlaneFcity对象list4 */
        PlaneFcity list4 = new PlaneFcity();
        /** list4调用它的getSelect()方法得到记录并把它传递给myList4 */
        myList4 = list4.getSelect();
        /** 将myList4的内容传递给delmodify.jsp中的下拉框myList4 */
        request.setAttribute("myList4", myList4);
        /** 将myList4的内容传递给delmodify.jsp中的下拉框myList5 */
        request.setAttribute("myList5", myList4);
        /** 将myList4的内容传递给delmodify.jsp中的下拉框myList6 */
        request.setAttribute("myList6", myList4);
        /** 将myList4的内容传递给delmodify.jsp中的下拉框myList7 */
        request.setAttribute("myList7", myList4);
        /** 显示时间0-2的第一个下拉框 */
        List myListhour1 = new ArrayList();
        myListhour1.add("--");
        myListhour1.add("0");
        myListhour1.add("1");
        myListhour1.add("2");
        /** 分别赋给其他显示相同内容值的下拉框的值 */
        request.setAttribute("myListhour1", myListhour1);
        request.setAttribute("myListhour12", myListhour1);
        request.setAttribute("myListhour13", myListhour1);
        request.setAttribute("myListhour14", myListhour1);
        request.setAttribute("myListhour15", myListhour1);
        request.setAttribute("myListhour16", myListhour1);
        /** 显示时间的第二个下拉框用来显示0-9的值 */
        List myListhour2 = new ArrayList();
        myListhour2.add("--");
        for (int i = 0; i < 10; i++) {
            myListhour2.add(String.valueOf(i));
        }
        /** 分别赋给其他显示相同内容值的下拉框的值 */
        request.setAttribute("myListhour2", myListhour2);
        request.setAttribute("myListminute2", myListhour2);
        request.setAttribute("myListhour22", myListhour2);
        request.setAttribute("myListminute22", myListhour2);
        request.setAttribute("myListhour23", myListhour2);
        request.setAttribute("myListminute23", myListhour2);
        request.setAttribute("myListhour24", myListhour2);
        request.setAttribute("myListminute24", myListhour2);
        request.setAttribute("myListhour25", myListhour2);
        request.setAttribute("myListminute25", myListhour2);
        request.setAttribute("myListhour26", myListhour2);
        request.setAttribute("myListminute26", myListhour2);
        /** 显示时间的第三个下拉框用来显示0-6的值 */
        List myListminute1 = new ArrayList();
        myListminute1.add("--");
        for (int j = 0; j < 7; j++) {
            myListminute1.add(String.valueOf(j));
        }
        /** 分别赋给其他显示相同内容值的下拉框的值 */
        request.setAttribute("myListminute1", myListminute1);
        request.setAttribute("myListminute12", myListminute1);
        request.setAttribute("myListminute13", myListminute1);
        request.setAttribute("myListminute14", myListminute1);
        request.setAttribute("myListminute15", myListminute1);
        request.setAttribute("myListminute16", myListminute1);
        /** count用来确定最后要跳转的页面的 */
        boolean count = true;
        /** 建立Connection 对象 */
        Connection con = null;
        /** 从这里开始捕获各种动作的异常 */

        try {
            /** 连接数据库 */
            db = new DbConnection();
            con = db.getCon();

            /** 定义DAO对象,用于实现数据库的各种操作 */
            ViewDAO m_ViewDAO = new ViewDAO(con);
            /** 得到是那种动作类型 */
            String action = request.getParameter("action");
            /** 得到数据库查找的方式 */
            String search = request.getParameter("search");
            /** 参数,这里用于保存记录(行)的fno数据 */
            String expression = request.getParameter("expression");
            /** 如果没有指定动作类型则动作类型采用默认的数据类型 */
            if (action == null)
                action = "find";
            /** 如果没有指定的查找方式则采用不进行查找方式 */
            if (search == null)
                search = "UNsearch";
            /** 没有指定关键字 */
            if (expression == null)
                expression = "";
            /** 处理中文问题,实现编码转换 */
            expression = toChinese(expression);
            /**
             * 权限
             * @param userAddeGrant  对表进行添加操作的权限
             */
            String userAddGrant = (String) request.getSession().getAttribute(
                    "userAddGrant");
            /** 删除记录操作 */
            if ("delete".equals(action)) {
                m_ViewDAO.removeID(expression);

            }
            /** 更新或者是添加记录操作 */
            if ("update".equals(action) || "insert".equals(action)) {
                /** 定义View 对象 */
                View m_View = new View();

                /** 设定View中的航班号值 */
                m_View.setFno(toChinese(m_ViewForm.getSelect()));
                /** 判断得到的航班号是否为空 */
                if ("请选择".equals(toChinese(m_View.getFno())))
                    count = false;
                PlaneFno fFno2 = new PlaneFno();
                if (fFno2.isFno(m_ViewForm.getSelect(), "flight"))
                    count = false;
                /** 设定View中的航班国籍值 */
                m_View.setFcountry(toChinese(m_ViewForm.getSelect2()));
                /** 判断得到的航班国籍是否为空 */
                if ("请选择".equals(toChinese(m_View.getFcountry())))
                    count = false;
                /** 设定View中的航班是入境还是出境值 */
                m_View.setIout(toChinese(m_ViewForm.getSelect3()));
                /** 判断得到的航班出入境是否为空 */
                if ("请选择".equals(toChinese(m_View.getIout())))
                    count = false;
                /** 建立PlaneFcom对象 */
                PlaneFcom fsearchcom = new PlaneFcom();
                /** 通过航班号和getFcom()方法得到航班的所属的公司 */
                m_View.setFcom(fsearchcom.getFcom(toChinese(m_ViewForm
                        .getSelect().trim())));
                /** 判断得到的航班公司是否为空 */
                if ("请选择".equals(toChinese(m_View.getFcom())))
                    count = false;
                /** 建立PlaneFcity对象 */
                PlaneFcity fsearchcity = new PlaneFcity();
                /** 建立一个字符串对象用来得到fsearchcity传回来的值 */
                String str = "";
                /** 建立一个链表对象将选择的城市名加入到链表中去 */
                List myListAdd = new ArrayList();
                myListAdd.add(toChinese(m_ViewForm.getSelect4()));
                myListAdd.add(toChinese(m_ViewForm.getSelect5()));
                myListAdd.add(toChinese(m_ViewForm.getSelect6()));
                myListAdd.add(toChinese(m_ViewForm.getSelect7()));
                str = fsearchcity.getNumber(myListAdd);
                /** 设定View中的航班所经过的城市值 */
                m_View.setFcity(str);
                /** 判断出发城市是否被选择 */
                if (!"请选择".equals(toChinese(m_ViewForm.getSelect4())))
                    m_View.setFcity1(toChinese(m_ViewForm.getSelect4()));
                else
                    count = false;
                /** 判断经过的第一个城市是否被选择 */
                if (!"请选择".equals(toChinese(m_ViewForm.getSelect5())))
                    m_View.setFcity2(toChinese(m_ViewForm.getSelect5()));
                else
                    count = false;
                /** 判断经过的第二个城市是否被选择 */
                if (!"请选择".equals(toChinese(m_ViewForm.getSelect6())))
                    m_View.setFcity3(toChinese(m_ViewForm.getSelect6()));

                /** 判断经过的第三个城市是否被选择 */
                if (!"请选择".equals(toChinese(m_ViewForm.getSelect7())))
                    m_View.setFcity4(toChinese(m_ViewForm.getSelect7()));

                /** 判断离开出发城市的出发时间是否被输入 */
                if (("--".equals(m_ViewForm.getSelecth1()))
                        || ("--".equals(m_ViewForm.getSelecth2()))
                        || ("--".equals(m_ViewForm.getSelectm1()))
                        || ("--".equals(m_ViewForm.getSelectm2())))
                    count = false;
                /** 如果输入了则将时间值组合起来赋给text1来显示一个完整的时间 */
                else {
                    m_View.setText1(m_ViewForm.getSelecth1()
                            + m_ViewForm.getSelecth2() + ":"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -