首页 > Web开发 > 详细

利用js日期控件重构WEB功能

时间:2015-09-29 13:05:42      阅读:268      评论:0      收藏:0      [点我收藏+]

开发需求:网页中的日期部门都用js日期控件重写

页面一:更新员工页面

empUpdate.jsp 中增加 onfocus 事件

入职日期:<input id="hiredate" type="text" name="hiredateTxt" value="${requestScope.empBean.hiredate}" onfocus="setday(this,‘yyyy-MM-dd‘,‘2010-01-01‘,‘2020-12-30‘,1)" readonly="readonly"><br>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>员工更新</title>
<link href="/web01//css/main.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/web01/js/DatePicker.js"></script>
</head>
<body>
<%@ include file="top.jsp" %>
<form action="/web01/empController" method="get">
员工编号:<input type="text" disabled="disabled" value="${requestScope.empBean.empno}"><br>
员工姓名:<input type="text" name="enameTxt" value="${requestScope.empBean.ename}"><br>
职位:<input type="text" name="jobTxt" value="${requestScope.empBean.job}"><br>
领导:<input type="text" name="mgrTxt" value="${requestScope.empBean.mgr}"><br>
入职日期:<input id="hiredate" type="text" name="hiredateTxt" value="${requestScope.empBean.hiredate}" onfocus="setday(this,‘yyyy-MM-dd‘,‘2010-01-01‘,‘2020-12-30‘,1)" readonly="readonly"><br>
工资:<input type="text" name="salTxt" value="${requestScope.empBean.sal}"><br>
奖金:<input type="text" name="commTxt" value="${requestScope.empBean.comm}"><br>
部门:<input type="text" name="deptnoTxt" value="${requestScope.empBean.deptno}"><br>
<input type="submit" value="Save">
<input type="hidden" name="callTp" value="empSave">
<input type="hidden" name="empno" value="${requestScope.empBean.empno}">
<br/>
</form>
<%@ include file="bottom.jsp" %>
</body>
</html>

前台传到后台的日期格式是 yyyy-mm-dd,在java端进行格式化去掉“-”后变成 yyyymmdd格式的字符串

所以增加了一个处理String的类StringUtil.java。

package com.test.common.util;

public class StringUtil {
    
    public static String formatString(String dateStringWithLine){
        String dateString = null;
        if (dateStringWithLine != null) {
            dateString = dateStringWithLine.replace("-", "");
        }
        return dateString;
    }
}

在service层调用SQL之前处理字符串 StringUtil.formatString(empBean.getHiredate())

    // 更新emp信息
    public int empSave(EmpBean empBean) {
        int updateResulInt = 0;
        
        BaseDao baseDao = new BaseDao();
        try {
            conn = baseDao.dbConnection();
        } catch (SQLException e1) {
            e1.printStackTrace();
        }
        
        StringBuffer sqlBf = new StringBuffer();
        sqlBf.setLength(0);
        
        sqlBf.append("UPDATE EMP SET  ENAME = ?                               \n");
        sqlBf.append("              , JOB = ?                                 \n");
        sqlBf.append("              , MGR = ?                                 \n");
        sqlBf.append("              , HIREDATE = TO_DATE(?, ‘YYYYMMDD‘)       \n");
        sqlBf.append("              , SAL = ?                                 \n");
        sqlBf.append("              , COMM = ?                                \n");
        sqlBf.append("              , DEPTNO = ?                              \n");
        sqlBf.append("WHERE EMPNO = ?                                         \n");
        
        try {
            pstmt = conn.prepareStatement(sqlBf.toString());
            idx = 1;
            pstmt.setString(idx++, empBean.getEname());
            pstmt.setString(idx++, empBean.getJob());
            pstmt.setInt(idx++, empBean.getMgr());
            pstmt.setString(idx++, StringUtil.formatString(empBean.getHiredate()));
            pstmt.setDouble(idx++, empBean.getSal());
            pstmt.setDouble(idx++, empBean.getComm());
            pstmt.setInt(idx++, empBean.getDeptno());
            pstmt.setInt(idx++, empBean.getEmpno());
            
            updateResulInt = pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            baseDao.dbDisconnection(null, pstmt, conn);
        }
        
        return updateResulInt;
    }

页面效果是

技术分享

 

页面二:添加员工

empAdd.jsp 中也跟上面相同方式处理

入职日期:<input id="hiredate" type="text" name="hiredateTxt" value="" onfocus="setday(this,‘yyyy-MM-dd‘,‘2010-01-01‘,‘2020-12-30‘,1)" readonly="readonly"><br>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>添加员工</title>
<link href="/web01/css/main.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/web01/js/DatePicker.js"></script>
</head>
<body>
<%@ include file="top.jsp" %>
<form action="/web01/empController" method="get">
员工姓名:<input type="text" name="enameTxt" value="" maxlength="10"><br>
职位:<input type="text" name="jobTxt" value="" maxlength="9"><br>
领导号:<input type="text" name="mgrTxt" value="" maxlength="4"><br>
入职日期:<input id="hiredate" type="text" name="hiredateTxt" value="" onfocus="setday(this,‘yyyy-MM-dd‘,‘2010-01-01‘,‘2020-12-30‘,1)" readonly="readonly"><br>
工资:<input type="text" name="salTxt" value="" maxlength="7"><br>
奖金:<input type="text" name="commTxt" value="" maxlength="7"><br>
部门编号:<input type="text" name="deptnoTxt" value="" maxlength="2"><br>
<input type="submit" value="Add">
<input type="hidden" name="callTp" value="empAdd">
<br/>
</form>
<%@ include file="bottom.jsp" %>
</body>
</html>

添加员工的service层调用SQL之前处理字符串 StringUtil.formatString(empBean.getHiredate())

 

    // 添加新的员工
    public int empAdd(EmpBean emp) {
        int insertInt = 0;

        BaseDao baseDao = new BaseDao();
        try {
            conn = baseDao.dbConnection();
        } catch (SQLException e1) {
            e1.printStackTrace();
        }
        
        int nextEmpno = this.getNextEmpno();
        
        StringBuffer sqlBf = new StringBuffer();
        sqlBf.setLength(0);
        
        sqlBf.append("INSERT INTO EMP(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)        \n");
        sqlBf.append("          VALUES(?                                                          \n");
        sqlBf.append("               , ?                                                          \n");
        sqlBf.append("               , ?                                                          \n");
        sqlBf.append("               , ?                                                          \n");
        sqlBf.append("               , TO_DATE(?, ‘YYYYMMDD‘)                                     \n");
        sqlBf.append("               , ?                                                          \n");
        sqlBf.append("               , ?                                                          \n");
        sqlBf.append("               , ?)                                                         \n");
        
        try {
            pstmt = conn.prepareStatement(sqlBf.toString());
            idx = 1;
            pstmt.setInt(idx++, nextEmpno);
            pstmt.setString(idx++, emp.getEname());
            pstmt.setString(idx++, emp.getJob());
            pstmt.setInt(idx++, emp.getMgr());
            pstmt.setString(idx++, StringUtil.formatString(emp.getHiredate()));
            pstmt.setDouble(idx++, emp.getSal());
            pstmt.setDouble(idx++, emp.getComm());
            pstmt.setInt(idx++, emp.getDeptno());
            
            insertInt = pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            baseDao.dbDisconnection(rs, pstmt, conn);
        }
        
        return insertInt;
    }

 

员工的service的全部代码

package com.test.biz.service;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import com.test.biz.bean.EmpBean;
import com.test.common.dao.BaseDao;
import com.test.common.util.StringUtil;

public class EmpService {
    private int idx = 1;

    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
        
    public ArrayList<EmpBean> getEmpList(EmpBean eb){
        ArrayList<EmpBean> empList = new ArrayList<EmpBean>();

        BaseDao baseDao = new BaseDao();
        try {
            conn = baseDao.dbConnection();
        } catch (SQLException e1) {
            e1.printStackTrace();
        }

        // 3. 执行SQL语句
        StringBuffer sqlBf = new StringBuffer();
        sqlBf.setLength(0);
        
        sqlBf.append("SELECT  EMPNO                                             \n");
        sqlBf.append("      , ENAME                                             \n");
        sqlBf.append("      , JOB                                               \n");
        sqlBf.append("      , MGR                                               \n");
        sqlBf.append("      , TO_CHAR(HIREDATE, ‘YYYYMMDD‘)  HIREDATE           \n");
        sqlBf.append("      , SAL                                               \n");
        sqlBf.append("      , COMM                                              \n");
        sqlBf.append("      , DEPTNO                                            \n");
        sqlBf.append("FROM    EMP                                               \n");
        sqlBf.append("WHERE   ENAME LIKE UPPER(?) || ‘%‘                        \n");
        sqlBf.append("ORDER BY EMPNO                                            \n");

        try {
            pstmt = conn.prepareStatement(sqlBf.toString());
            idx = 1;
            pstmt.setString(idx++, eb.getEname());
            
            // 4. 获取结果集
            rs = pstmt.executeQuery();
            while (rs.next()) {
                EmpBean emp = new EmpBean();
                
                emp.setEmpno(rs.getInt("empno"));
                emp.setEname(rs.getString("ename"));
                emp.setJob(rs.getString("job"));
                emp.setMgr(rs.getInt("mgr"));
                emp.setHiredate(rs.getString("hiredate"));
                emp.setSal(rs.getDouble("sal"));
                emp.setComm(rs.getDouble("comm"));
                emp.setDeptno(rs.getInt("deptno"));
                
                empList.add(emp);
            }            
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            baseDao.dbDisconnection(rs, pstmt, conn);
        }
        
        return empList;
    }

    // 利用empno查询单条员工信息
    public EmpBean empById(int empno) {
        EmpBean emp = new EmpBean();
        
        BaseDao baseBao = new BaseDao();
        try {
            conn = baseBao.dbConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
        StringBuffer sqlBf = new StringBuffer();
        sqlBf.setLength(0);
        
        sqlBf.append("SELECT   EMPNO                                       \n");
        sqlBf.append("       , ENAME                                       \n");
        sqlBf.append("       , JOB                                         \n");
        sqlBf.append("       , MGR                                         \n");
        sqlBf.append("       , TO_CHAR(HIREDATE, ‘YYYY-MM-DD‘)  HIREDATE   \n");
        sqlBf.append("       , SAL                                         \n");
        sqlBf.append("       , COMM                                        \n");
        sqlBf.append("       , DEPTNO                                      \n");
        sqlBf.append("FROM     EMP                                         \n");
        sqlBf.append("WHERE    EMPNO = ?                                   \n");
        
        try {
            pstmt = conn.prepareStatement(sqlBf.toString());
            idx = 1;
            pstmt.setInt(idx++, empno);
            
            rs = pstmt.executeQuery();
            if (rs.next()) {
                emp.setEmpno(rs.getInt("EMPNO"));
                emp.setEname(rs.getString("ENAME"));
                emp.setJob(rs.getString("JOB"));
                emp.setMgr(rs.getInt("MGR"));
                emp.setHiredate(rs.getString("HIREDATE"));
                emp.setSal(rs.getDouble("SAL"));
                emp.setComm(rs.getDouble("COMM"));
                emp.setDeptno(rs.getInt("DEPTNO"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            baseBao.dbDisconnection(rs, pstmt, conn);
        }
        
        return emp;
    }

    // 更新emp信息
    public int empSave(EmpBean empBean) {
        int updateResulInt = 0;
        
        BaseDao baseDao = new BaseDao();
        try {
            conn = baseDao.dbConnection();
        } catch (SQLException e1) {
            e1.printStackTrace();
        }
        
        StringBuffer sqlBf = new StringBuffer();
        sqlBf.setLength(0);
        
        sqlBf.append("UPDATE EMP SET  ENAME = ?                               \n");
        sqlBf.append("              , JOB = ?                                 \n");
        sqlBf.append("              , MGR = ?                                 \n");
        sqlBf.append("              , HIREDATE = TO_DATE(?, ‘YYYYMMDD‘)       \n");
        sqlBf.append("              , SAL = ?                                 \n");
        sqlBf.append("              , COMM = ?                                \n");
        sqlBf.append("              , DEPTNO = ?                              \n");
        sqlBf.append("WHERE EMPNO = ?                                         \n");
        
        try {
            pstmt = conn.prepareStatement(sqlBf.toString());
            idx = 1;
            pstmt.setString(idx++, empBean.getEname());
            pstmt.setString(idx++, empBean.getJob());
            pstmt.setInt(idx++, empBean.getMgr());
            pstmt.setString(idx++, StringUtil.formatString(empBean.getHiredate()));
            pstmt.setDouble(idx++, empBean.getSal());
            pstmt.setDouble(idx++, empBean.getComm());
            pstmt.setInt(idx++, empBean.getDeptno());
            pstmt.setInt(idx++, empBean.getEmpno());
            
            updateResulInt = pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            baseDao.dbDisconnection(null, pstmt, conn);
        }
        
        return updateResulInt;
    }

    // 获取下一个员工号
    public int getNextEmpno() {
        int nextEmpno = 0;

        StringBuffer sqlBf = new StringBuffer();
        sqlBf.setLength(0);
        
        sqlBf.append("SELECT MAX(EMPNO) + 1      AS EMPNO  \n");
        sqlBf.append("FROM   EMP                           \n");
        
        try {
            pstmt = conn.prepareStatement(sqlBf.toString());
            
            rs = pstmt.executeQuery();
            if (rs.next()) {
                nextEmpno = rs.getInt("EMPNO");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } 
        
        return nextEmpno;
    }

    // 添加新的员工
    public int empAdd(EmpBean emp) {
        int insertInt = 0;

        BaseDao baseDao = new BaseDao();
        try {
            conn = baseDao.dbConnection();
        } catch (SQLException e1) {
            e1.printStackTrace();
        }
        
        int nextEmpno = this.getNextEmpno();
        
        StringBuffer sqlBf = new StringBuffer();
        sqlBf.setLength(0);
        
        sqlBf.append("INSERT INTO EMP(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)        \n");
        sqlBf.append("          VALUES(?                                                          \n");
        sqlBf.append("               , ?                                                          \n");
        sqlBf.append("               , ?                                                          \n");
        sqlBf.append("               , ?                                                          \n");
        sqlBf.append("               , TO_DATE(?, ‘YYYYMMDD‘)                                     \n");
        sqlBf.append("               , ?                                                          \n");
        sqlBf.append("               , ?                                                          \n");
        sqlBf.append("               , ?)                                                         \n");
        
        try {
            pstmt = conn.prepareStatement(sqlBf.toString());
            idx = 1;
            pstmt.setInt(idx++, nextEmpno);
            pstmt.setString(idx++, emp.getEname());
            pstmt.setString(idx++, emp.getJob());
            pstmt.setInt(idx++, emp.getMgr());
            pstmt.setString(idx++, StringUtil.formatString(emp.getHiredate()));
            pstmt.setDouble(idx++, emp.getSal());
            pstmt.setDouble(idx++, emp.getComm());
            pstmt.setInt(idx++, emp.getDeptno());
            
            insertInt = pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            baseDao.dbDisconnection(rs, pstmt, conn);
        }
        
        return insertInt;
    }

    // 删除一名员工
    public int empDelete(int empno) {
        int deleteResulInt = 0;
        
        BaseDao baseDao = new BaseDao();
        try {
            conn = baseDao.dbConnection();
        } catch (SQLException e1) {
            e1.printStackTrace();
        }
        
        StringBuffer sqlBf = new StringBuffer();
        sqlBf.setLength(0);
        
        sqlBf.append("DELETE FROM EMP           \n");
        sqlBf.append("WHERE EMPNO = ?           \n");
        
        try {
            pstmt = conn.prepareStatement(sqlBf.toString());
            idx = 1;
            pstmt.setInt(idx++, empno);
            
            deleteResulInt = pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            baseDao.dbDisconnection(null, pstmt, conn);
        }
        
        return deleteResulInt;
    }   
}                                           
                                           
                                         

 

利用js日期控件重构WEB功能

原文:http://www.cnblogs.com/seabird1979/p/4845909.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!