updateaction.java

来自「基于SSH (struts+spring+hibernate)框架设计的 C」· Java 代码 · 共 121 行

JAVA
121
字号
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.csu.crm.common.action;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.csu.crm.common.dao.SingleObjectDAO;
import com.csu.crm.common.vo.CrmAction;
import com.csu.crm.util.PrepareUtil;

/**
 * 修改表单记录
 * 必须传入参数: target---目标持久化类名 id------主键值
 * 
 * 修改表单记录的流程
 * 0、 判断传入参数是否符合要求(是否有传入参数,及是否在数据库中存在)
 * 1、 先在session中的保存此对象到 属性SelectedXxxx中
 * 2、 在调用表单jsp页面前,做必要的属性保存,一般为保存页面要用到的下拉框的文本信息
 * 例:
 * 	http://localhost:7076/3eCRM-SSH/update.do?target=CrmCustomer&id=1
 *  http://localhost:7076/3eCRM-SSH/update.do?target=CrmEmployee&id=1
 * 
 * @author 3eCRM小组:曾东
 * @since 2007-9-30 下午04:07:00
 * @version 1.0 创建时间:2007-9-30 下午04:07:00,初始版本
 */
public class UpdateAction extends Action {
	private PrepareUtil prepareUtil;
	private SingleObjectDAO singleObjectDAO;
	/*
	 * Generated Methods
	 */

	public PrepareUtil getPrepareUtil() {
		return prepareUtil;
	}

	public void setPrepareUtil(PrepareUtil prepareUtil) {
		this.prepareUtil = prepareUtil;
	}

	public SingleObjectDAO getSingleObjectDAO() {
		return singleObjectDAO;
	}

	public void setSingleObjectDAO(SingleObjectDAO singleObjectDAO) {
		this.singleObjectDAO = singleObjectDAO;
	}

	/** 
	 * Method execute
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		/**
		 *  ######### 目标持久化类名 -- 主键名 --  session中保存选中对象的属性名 --- 调用的页面路径
		 */		
		//0
		//得到request参数
		String id = request.getParameter("id");
		String target = request.getParameter("target");
		if(id == null || target == null) {
			System.out.println("未指出id或target,将进入错误页面");
			request.setAttribute("errorInfo", "必须传入参数: target---目标持久化类名 id---主键值,不能进行对应信息的修改操作");
			return mapping.findForward("fail");
		}	
		//到Action操作表中找到对应的一些String参数
		CrmAction crmAction = (CrmAction)singleObjectDAO.getObject("CrmAction", "className", target);
		if(crmAction == null) {
			System.out.println("target输入错误");
			request.setAttribute("errorInfo", "传入参数错误: target---目标持久化类名,不能进行对应信息的修改操作");
			return mapping.findForward("fail");
		}
		String pkPropertyName = crmAction.getPkName();
		String attName  = crmAction.getAttrName();
		String path = crmAction.getFormPath();
		//到数据库中查询对应对象
		if(!singleObjectDAO.isExisted(target, pkPropertyName, id)) {
			System.out.println("未找到对应的对象,将进入错误页面");
			request.setAttribute("errorInfo", "未找到"+target+"表的id为"+id+"的数据,请检查请求参数的target值及id值");
			return mapping.findForward("fail");
		}
		
		
		//1
		//在session中的保存此对象		
		Object obj = singleObjectDAO.getObject(target, pkPropertyName, id);
		request.getSession().setAttribute(attName, obj);
		
		//2
		//在调用表单jsp页面前,做必要的属性保存,一般为保存页面要用到的下拉框的文本信息
		request =  prepareUtil.prepare(target,request);		
		
		//3
		//调用对应页面
		try {
			request.getRequestDispatcher(path).forward(request, response);
		} catch (ServletException e) {			
			e.printStackTrace();
		} catch (IOException e) {			
			e.printStackTrace();
		}		
		return null;
	}
}

⌨️ 快捷键说明

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