package css.web.demo.action;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.*;
import org.apache.struts.actions.DispatchAction;
import css.web.demo.form.EmployeeForm;
import css.web.demo.model.Employee;
import css.web.demo.service.DepartmentService;
import css.web.demo.service.EmployeeService;
import css.web.demo.util.Constants;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
public class EmployeeAction extends DispatchAction {
private Log logger = LogFactory.getLog(this.getClass());
private EmployeeService empService;
private DepartmentService deptService;
public EmployeeAction(EmployeeService empService, DepartmentService deptService) {
super();
this.empService = empService;
this.deptService = deptService;
}
public ActionForward getEmployees(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
logger.debug("getEmployees");
populateEmployees(request);
return mapping.findForward(Constants.SUCCESS);
}
public ActionForward setUpForInsertOrUpdate(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
logger.debug("setUpForInsertOrUpdate");
EmployeeForm employeeForm = (EmployeeForm)form;
if (isUpdate(request, employeeForm)) {
Integer id = Integer.valueOf(employeeForm.getEmployeeId());
Employee employee = empService.getEmployee(id);
BeanUtils.copyProperties(employeeForm, employee);
}
prep(request);
return mapping.findForward(Constants.SUCCESS);
}
public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
logger.debug("delete");
EmployeeForm employeeForm = (EmployeeForm)form;
Integer id = Integer.valueOf(employeeForm.getEmployeeId());
empService.deleteEmployee(id);
populateEmployees(request);
return mapping.findForward(Constants.SUCCESS);
}
public ActionForward insertOrUpdate(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
logger.debug("insertOrUpdate");
EmployeeForm employeeForm = (EmployeeForm)form;
if (validationSuccessful(request, employeeForm)) {
Employee employee = new Employee();
BeanUtils.copyProperties(employee, employeeForm);
if (isUpdate(request, employeeForm)) {
logger.debug("update");
empService.updateEmployee(employee);
} else {
logger.debug("insert");
empService.insertEmployee(employee);
}
populateEmployees(request);
return mapping.findForward(Constants.SUCCESS);
} else {
prep(request);
return mapping.findForward(Constants.FAILURE);
}
}
private void populateEmployees(HttpServletRequest request) {
List employees = empService.getAllEmployees();
request.setAttribute(Constants.EMPLOYEES, employees);
}
private void prep(HttpServletRequest request) {
request.setAttribute(Constants.DEPARTMENTS, deptService.getAllDepartments());
}
private boolean isUpdate(HttpServletRequest request, EmployeeForm empForm) {
boolean updateFlag = true;
//if ID is null or 0 we know we are doing an insert. You could check other
//things to decide, like a dispatch param
//It's annoying that BeanUtils will convert nulls to 0 so have to do 0 check also,
//or you could register a converter, which is the preferred way to handle it, but goes
//beyond this demo
String id = empForm.getEmployeeId();
if (id == null || id.trim().length() == 0 || Integer.parseInt(id) == 0) {
updateFlag = false;
}
return updateFlag;
}
private boolean validationSuccessful(HttpServletRequest request, EmployeeForm form) {
//if you really like using the validation framework stuff, you can just
//call ActionErrors errors = form.validate( mapping, request ); in this method
//and check for errors being empty, if not save them and you're done.
//I end up finding the validation framework a bit annoying to work with, so I do it
//old-Skool way. Inevitably in a more complex app you end up having to perform
//more complex validation than the validation framework provides, so I just assume
//keep it all here in one place, versus having some handled by xml configuration and
//some hardcoded.
boolean isOk = true;
ActionMessages errors = new ActionMessages();
if (form.getAge() == null || form.getAge().trim().length() == 0) {
errors.add("age", new ActionMessage("errors.required", "Age"));
} else {
try {
Integer.parseInt(form.getAge());
} catch (NumberFormatException e) {
errors.add("age", new ActionMessage("errors.number", "Age"));
}
}
if (form.getFirstName() == null || form.getFirstName().trim().length() == 0) {
errors.add("firstName", new ActionMessage("errors.required", "First Name"));
}
if (form.getLastName() == null || form.getLastName().trim().length() == 0) {
errors.add("lastName", new ActionMessage("errors.required", "Last Name"));
}
if (!errors.isEmpty()) {
//saveErrors(request, errors);
isOk = false;
}
return isOk;
}
/*
private void saveSuccessMessage( HttpServletRequest request, String messageResource ) {
ActionMessages messages = new ActionMessages();
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(messageResource));
saveMessages(request, messages);
}
*/
}
没有合适的资源?快使用搜索试试~ 我知道了~
struts+spring+ibatis源代码
共103个文件
class:21个
java:21个
jar:21个
4星 · 超过85%的资源 需积分: 9 295 下载量 96 浏览量
2008-08-03
17:43:37
上传
评论 3
收藏 8.33MB RAR 举报
温馨提示
struts+spring+ibatis源代码
资源推荐
资源详情
资源评论
收起资源包目录
struts+spring+ibatis源代码 (103个子文件)
EmployeeAction.class 5KB
Employee.class 2KB
EmployeeIbatisDao.class 2KB
EmployeeForm.class 1KB
EmployeeDaoService.class 1KB
MobiePhoneAction.class 1KB
TestOracleConn.class 1KB
Department.class 1KB
MobiePhoneDaoService.class 870B
MobiePhoneForm.class 865B
MobiePhone.class 864B
Constants.class 750B
MobiePhoneIbatisDao.class 721B
DepartmentDaoService.class 670B
DepartmentIbatisDao.class 623B
EmployeeDao.class 414B
EmployeeService.class 389B
MobiePhoneDao.class 206B
MobiePhoneService.class 203B
DepartmentService.class 185B
DepartmentDao.class 181B
.classpath 2KB
main.css 1KB
spring.jar 1.81MB
orai18n.jar 1.57MB
classes12.jar 1.52MB
ojdbc14.jar 1.47MB
commons-collections-3.1.jar 546KB
struts.jar 532KB
standard-1.1.1.jar 384KB
log4j-1.2.9.jar 344KB
ibatis-sqlmap-2.jar 284KB
commons-beanutils.jar 184KB
commons-digester.jar 164KB
commons-collections.jar 161KB
ibatis-common-2.jar 82KB
jakarta-oro.jar 64KB
commons-lang.jar 62KB
commons-validator.jar 46KB
commons-pool-1.2.jar 41KB
commons-logging.jar 37KB
commons-fileupload.jar 22KB
jstl-1.1.1.jar 20KB
struts-legacy.jar 10KB
EmployeeAction.java 6KB
Employee.java 1KB
MobiePhoneAction.java 1KB
EmployeeForm.java 1KB
EmployeeIbatisDao.java 920B
MobiePhoneForm.java 810B
MobiePhone.java 796B
Department.java 752B
EmployeeDaoService.java 749B
TestOracleConn.java 690B
MobiePhoneDaoService.java 627B
MobiePhoneIbatisDao.java 568B
Constants.java 504B
MobiePhoneService.java 389B
DepartmentDaoService.java 385B
MobiePhoneDao.java 378B
EmployeeService.java 364B
EmployeeDao.java 346B
DepartmentIbatisDao.java 320B
DepartmentService.java 140B
DepartmentDao.java 140B
employeeForm.jsp 2KB
employees.jsp 2KB
error.jsp 1KB
MobieRegister.jsp 691B
index.jsp 125B
.struts-config.mex 2KB
MANIFEST.MF 39B
.mymetadata 297B
.mystrutsdata 262B
.project 1KB
log4j.properties 679B
log4j.properties 679B
MessageResources_en.properties 588B
MessageResources_en.properties 588B
spring.properties 142B
spring.properties 142B
.springBeans 283B
struts-html.tld 65KB
struts-nested.tld 63KB
struts-logic.tld 14KB
struts-bean.tld 9KB
struts-tiles.tld 8KB
struts-template.tld 2KB
validator-rules.xml 41KB
spring.xml 3KB
spring.xml 3KB
Employee.xml 2KB
Employee.xml 2KB
struts-config.xml 2KB
web.xml 1KB
MobiePhone.xml 796B
MobiePhone.xml 796B
SqlMapConfig.xml 596B
SqlMapConfig.xml 596B
Department.xml 513B
共 103 条
- 1
- 2
资源评论
- gkaiqq19872011-11-25是struts1的, 不是2
- 型楠2012-06-28要是struts2 的就更好了
- CrazyAnt_X2012-11-17是struts1的, 不是2,谢谢分享
小胡同学_SH
- 粉丝: 38
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 聊天系统(java+applet).zip
- 毕业设计:基于SSM的mysql-高校学生请假管理系统(源码 + 数据库 + 说明文档)
- 博客系统(struts+hibernate+spring).rar
- c语言学生成绩管理系统源码.zip
- 毕业设计:基于SSM的mysql-网约车用户服务平台(源码 + 数据库 + 说明文档)
- 内容管理系统(hibernate3+struts2+spring2)130224.rar
- 基于Java的班级管理系统课程设计源码
- 内容管理系统(hibernate3+struts2+spring2).rar
- 路由器刷breed Web控制台助手v5.8版本.rar
- Java 在 JEP 12 提供的特性预览
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功