📄 addplaneaction.java
字号:
/*
* @(#)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 + -