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 + -
显示快捷键?