📄 delmodifyaction.java
字号:
/*
* @(#)DelModifyAction.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,DelModifyForm以及页面中的动作事件
* 它包过添加,删除,更新,查询等 动作事件的处理并把处理结果
* 传递给DelModifyDAO类来进行数据库操作,
* 当动作处理完成后 将要发生跳转,并跳转到指定的页面
*
* @see View
* @see DelModifyDAO
* @see DelModifyForm
* @see Connection
* @author 李勇
*/
public final class DelModifyAction 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();
/** 建立DelModifyForm对象 */
DelModifyForm m_ViewForm = (DelModifyForm) form;
/** 建立List对象myList */
List myList = new ArrayList();
/** 建立PlaneFno对象list */
PlaneFno list = new PlaneFno();
/**
* list调用它的getSelect(参数)方法 从flight表中得到记录并把它传递给myList
*/
myList = list.getSelect("flight");
/** 将myList的内容传递给delmodify.jsp中的下拉框myList */
request.setAttribute("myList", myList);
/** 建立List对象myList2 */
List myList2 = new ArrayList();
/** 建立PlaneFcountry对象list2 */
PlaneFcountry list2 = new PlaneFcountry();
/**
* list2调用它的getSelect(参数,参数)方法 从flight表中得到记录并把它传递给myList2
*/
myList2 = list2.getSelect("fcountry", "flight");
/** 将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);
/** 建立PlaneFcom对象list6 */
PlaneFcom list6 = new PlaneFcom();
/** 建立List对象myList6 */
List myList6 = new ArrayList();
/** list6调用它的getSelect()方法得到记录并把它传递给myList6 */
myList6 = list6.getSelect();
/** 将myList6的内容传递给delmodify.jsp中的下拉框myList6 */
request.setAttribute("myList6", myList6);
/** 建立Connection 对象 */
Connection con = null;
/** 建立一个六个数据的数组用来判断6个下拉框的是不是为空 */
int count[] = { 1, 1, 1, 1, 1, 1 };
/** 有5个数据的数组count2是用来判断sql语句是不是需要加上"and" */
int count2[] = { 0, 0, 0, 0, 0 };
/** flag用来确定最后要跳转的页面的 */
boolean flag = false;
int t = 0;
/** 从这里开始捕获各种动作的异常 */
try {
/** 连接数据库 */
db = new DbConnection();
con = db.getCon();
/** 定义DAO对象,用于实现数据库的各种操作 */
DelModifyDAO m_ViewDAO = new DelModifyDAO(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);
/** 查询要处理的sql语句 */
String sql = "select fno,fcountry,fcom,iout from flight";
/** 查询记录 */
if ("search".equals(search)) {
sql += " where";
/** 如果没有制定关键字的话采用下面的方法进行查询 */
if ("NULL".equals(expression) || "".equals(expression)) {
View m_View = new View();
/** 判断第一个下拉框是否被选择 */
if ("请选择".equals(toChinese(m_ViewForm.getSelect())))
count[0] = 0;
/** 判断第二个下拉框是否被选择 */
if ("请选择".equals(toChinese(m_ViewForm.getSelect2())))
count[1] = 0;
/** 判断第三个下拉框是否被选择 */
if ("请选择".equals(toChinese(m_ViewForm.getSelect3())))
count[2] = 0;
/** 判断第四个下拉框是否被选择 */
if ("请选择".equals(toChinese(m_ViewForm.getSelect6())))
count[5] = 0;
/** 建立PlaneFcity对象 */
PlaneFcity fsearchcity = new PlaneFcity();
/** 建立一个字符串对象用来得到fsearchcity传回来的值 */
String str = "";
/** 建立一个链表对象将选择的城市名加入到链表中去 */
List myListAdd = new ArrayList();
/** 判断起点城市是否为空 */
if ("请选择".equals(toChinese(m_ViewForm.getSelect4())))
count[3] = 0;
else {
myListAdd.add(toChinese(m_ViewForm.getSelect4()));
}
/** 判断终点城市是否为空 */
if ("请选择".equals(toChinese(m_ViewForm.getSelect5())))
count[4] = 0;
else {
myListAdd.add(toChinese(m_ViewForm.getSelect5()));
}
/** 用字符串得到fsearchcity传回来的值 */
str = fsearchcity.getNumber(myListAdd);
/** 如果起点,终点都不为空的话在字符串中加入模糊查询需要的% */
if ((count[3] == 1) && (count[4] == 1)) {
for (int i = 0; i < str.length() - 1; i++) {
if (str.substring(i, i + 1).equals("|")) {
t = i + 1;
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -