课设第三天:员工信息添加界面

编程入门 行业动态 更新时间:2024-10-27 18:30:58

课设第三天:员工信息添加<a href=https://www.elefans.com/category/jswz/34/1769995.html style=界面"/>

课设第三天:员工信息添加界面

添加员工

①. 显示表单页面: 需要先查询所有的部门信息
在index.jsp中添加链接

<a href="emp-input">Add New Employee</a>

在actions中添加

public String input(){request.put("departments", departmentService.getAll());return INPUT;}

实现DepartmentDao.java

package com.keshe.ssh.dao;import java.util.List;import com.keshe.ssh.entities.Department;public class DepartmentDao extends BaseDao{public List<Department> getAll(){String hql = "FROM Department";return getSession().createQuery(hql).list();}}

创建DepartmentService.java

package com.keshe.ssh.service;import java.util.List;import com.keshe.ssh.dao.DepartmentDao;
import com.keshe.ssh.entities.Department;public class DepartmentService {private DepartmentDao departmentDao;public void setDepartmentDao(DepartmentDao departmentDao) {this.departmentDao = departmentDao;}public List<Department> getAll(){return departmentDao.getAll();}}

在EmployeeAction.java中添加

private DepartmentService departmentService;public void setDepartmentService(DepartmentService departmentService) {this.departmentService = departmentService;}

在Struts配置文件中实现input的对应页面

<result name="input">/WEB-INF/views/emp-input.jsp</result>

创建emp-input.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ".dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="scripts/jquery-1.9.1.min.js"></script>
<script type="text/javascript">$(function(){$(":input[name=lastName]").change(function(){var val = $(this).val();val = $.trim(val);var $this = $(this);if(val != ""){//把当前节点后面的所有 font 兄弟节点删除$this.nextAll("font").remove();var url = "emp-validateLastName";var args = {"lastName":val, "time":new Date()};$.post(url, args, function(data){//表示可用if(data == "1"){$this.after("<font color='green'>LastName可用!</font>");}//不可用else if(data == "0"){$this.after("<font color='red'>LastName不可用!</font>");						}//服务器错误else{alert("服务器错误!");}});}else{alert("lastName 不能为空");$(this).val("");$this.focus();}});})</script>
</head>
<body><s:debug></s:debug><h4>Employee Input Page</h4><s:form action="emp-save" method="post"><s:if test="id != null"><s:textfield name="lastName" label="LastName" disabled="true"></s:textfield><s:hidden name="id"></s:hidden><%-- <!-- 通过添加隐藏域的方式把未显式提交的字段值提交到服务器 --><s:hidden name="lastName"></s:hidden><s:hidden name="createTime"></s:hidden>--%></s:if><s:else><s:textfield name="lastName" label="LastName"></s:textfield></s:else><s:textfield name="email" label="Email"></s:textfield><s:textfield name="birth" label="Birth"></s:textfield><s:select list="#request.departments"listKey="id" listValue="departmentName" name="department.id"label="Department"></s:select><s:submit></s:submit>	</s:form></body>
</html>

在beans配置文件中添加

<bean id="departmentDao" class="com.keshe.ssh.dao.DepartmentDao"><property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="departmentService" class="com.keshe.ssh.service.DepartmentService"><property name="departmentDao" ref="departmentDao"></property>
</bean><bean id="employeeAction" class="com.keshe.ssh.actions.EmployeeAction"scope="prototype"><property name="employeeService" ref="employeeService"></property>	<property name="departmentService" ref="departmentService"></property>
</bean>

到此时,可以显示添加页面

②. 使用 Struts2 的 ModelDriven 和 Preparable 拦截器,将提交的表单信息封装为一个对象
先使action类实现ModelDriven 和 Preparable

public class EmployeeAction extends ActionSupport implements RequestAware,ModelDriven<Employee>, Preparable{
@Overridepublic void prepare() throws Exception {}private Employee model;@Overridepublic Employee getModel() {return model;}

定义save

public String save(){if(id == null){model.setCreateTime(new Date());			}employeeService.saveOrUpdate(model);return SUCCESS;}

在Employee.java重写toString

@Overridepublic String toString() {return "Employee [id=" + id + ", lastName=" + lastName + ", email="+ email + ", birth=" + birth + ", createTime=" + createTime+ ", department=" + department + "]";}

③. 时间是一个字符串, 需要转为一个 Date 类型的对象

定义类型转换器
创建com.keshe.ssh.converters包,并创建SSHDateConverter.java

package com.keshe.ssh.converters;import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;import org.apache.struts2.util.StrutsTypeConverter;public class SSHDateConverter extends StrutsTypeConverter {private DateFormat dateFormat;{dateFormat = new SimpleDateFormat("yyyy-MM-dd");}@Overridepublic Object convertFromString(Map context, String[] values, Class toClass) {if(toClass == Date.class){try {return dateFormat.parse(values[0]);} catch (ParseException e) {e.printStackTrace();}}return null;}@Overridepublic String convertToString(Map context, Object o) {if(o instanceof Date){return dateFormat.format((Date)o);}return null;}}

增加配置文件
创建xwork-conversion.properties

java.util.Date=com.keshe.ssh.converters.SSHDateConverter

在Struts新拦截器栈中添加

<result name="success" type="redirect">/emp-list</result>

在actions中添加

public void prepareSave(){if(id == null){model = new Employee();}else{model = employeeService.get(id);}}

保存传入
dao中EmployeeDao.java添加

public void saveOrUpdate(Employee employee){getSession().saveOrUpdate(employee);}

在actions中实现保存

public String save(){if(id == null){model.setCreateTime(new Date());			}//执行保存操作employeeService.saveOrUpdate(model);return SUCCESS;}

至此,可以完成添加,其中createtime与birth字段都是自己添加时候写的生日日期,其中birth不显示小时分秒,而createtime显示

更多推荐

课设第三天:员工信息添加界面

本文发布于:2023-07-27 22:08:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1225251.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:界面   员工   信息   课设第

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!