基于SSM和jQuery的学生管理系统

导读:本篇文章讲解 基于SSM和jQuery的学生管理系统,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

此篇文章重点介绍使用jQuery来实现前台界面和后台数据的异步传输,因此,只给出action(controller层的代码)
界面很丑,请勿喷…
1.首先,给出我的项目包结构:
在这里插入图片描述
po包是实体类包,util是一个工具类(他将负责后台数据向前台界面的输出)mapper包映射包,内包含各种SQL语句以及增删改查等方法,biz(services)包,主要负责业务逻辑的编写,action包就是我们熟知的controller层.
StudentAction代码:

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.action.IStudenAction;
import com.alibaba.fastjson.JSONObject;
import com.biz.IStudentBiz;
import com.po.Clazz;
import com.po.Student;
import com.util.StudentUtil;
@Controller
public class StudentAction implements IStudenAction {
	@Autowired
	private IStudentBiz studentBiz;
	public IStudentBiz getStudentBiz() {
		return studentBiz;
	}
	public void setStudentBiz(IStudentBiz studentBiz) {
		this.studentBiz = studentBiz;
	}
	@RequestMapping(value="save_Student.do")
	public String save(HttpServletRequest request,
			HttpServletResponse response, Student st) {
		int row = studentBiz.save(st);
		if (row > 0) {
			StudentUtil.printString(response, ""+1);
		}else {
			StudentUtil.printString(response, ""+0);
		}
		return null;
	}
	@RequestMapping(value="update_Student.do")
	public String update(HttpServletRequest request,
			HttpServletResponse response, Student st) {
		int row = studentBiz.update(st);
		if (row > 0) {
			StudentUtil.printString(response, ""+1);
		}else {
			StudentUtil.printString(response, ""+0);
		}
		return null;
	}
	@RequestMapping(value="delById_Student.do")
	public String delById(HttpServletRequest request,
			HttpServletResponse response, Integer sid) {
		int row = studentBiz.delById(sid);
		if (row > 0) {
			StudentUtil.printString(response, ""+1);
		}else {
			StudentUtil.printString(response, ""+0);
		}
		return null;
	}
	@RequestMapping(value="findById_Student.do")
	public String findById(HttpServletRequest request,
			HttpServletResponse response, Integer sid) {
		Student st = studentBiz.findById(sid);
		//将学生对象转为json字符串
		String jsonstr = JSONObject.toJSONString(st);
		System.out.println(jsonstr);
		StudentUtil.printString(response, jsonstr);
		return null;
	}
	@RequestMapping(value="findAll_Student.do")
	public String findAll(HttpServletRequest request,
			HttpServletResponse response) {
		List<Student> lsst = studentBiz.findAll();
		String jsonstr = JSONObject.toJSONString(lsst);
		StudentUtil.printString(response, jsonstr);
		return null;
	}
	@RequestMapping(value="doinit_Student.do")
	public String doinit(HttpServletRequest request,
			HttpServletResponse response) {
		List<Clazz> lsca = studentBiz.doinit();
		String jsonstr = JSONObject.toJSONString(lsca);
		StudentUtil.printString(response, jsonstr);
		return null;
	}
	@RequestMapping(value="findPageAll_Student.do")
	public String findPageAll(HttpServletRequest request,
			HttpServletResponse response, Integer page, Integer rows) {
		page = page==null?1:page;
		rows=rows==null?5:rows;
		if (rows > 20) {
			rows = 20;//每页最多20个值
		}
		//此处在biz(service)层查出总行数,与传进来的rows做运算得出最大页数
		int maxPage=studentBiz.findMaxPage(rows);
		if (page > maxPage) {
			page = maxPage;
		}
		List<Student> lsst = studentBiz.findPageAll(page, rows);
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("page", page);
		map.put("rows", rows);
		map.put("lsst", lsst);
		map.put("maxpage", maxPage);
		String jsonstr = JSONObject.toJSONString(map);
		StudentUtil.printString(response, jsonstr);
		return null;
	}
}

util包中的StudentUtil代码:

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
public class StudentUtil {
	/**
	 * 输出字符串
	 */
	public static void printString(HttpServletResponse response,String str){
		response.setCharacterEncoding("utf-8");
		PrintWriter out = null;
		try {
			out = response.getWriter();
			out.print(str);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally{
			out.flush();
			out.close();
		}	
	}
}

前台界面代码student.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	 <script type="text/javascript" src="js/jquery-1.9.1.js"></script>
	<script>
	$(function(){
		//获取下拉列表框的值
		$.getJSON("doinit_Student.do",function(lsca){
			for(var i=0;i<lsca.length;i++){
				var clazz=lsca[i];
				$("#classid").append("<option value="+clazz.cid+">"+clazz.cname+"</option>");
			}
		});
		showAll();	
	});
	//显示所有学生列表方法
	var page = 1;
	var maxpage =1;
	var rows = 5;
	function showAll(){
		$.getJSON('findPageAll_Student.do?page='+page+'&rows='+rows,function(map){
				var lsst = map.lsst;
				page=map.page;
				rows=map.rows;
				maxpage = map.maxpage;
				var tablehead="<table width='700' border='1' align='center' cellpadding='1' cellspacing='1'>"
					+"<tr align='center' bgcolor='#FFFF99'>"
					+"<td>编号</td>"
					+"<td>姓名</td>"
					+"<td>性别</td>"
					+"<td>地址</td>"
					+"<td>生日</td>"
					+"<td>班级</td>"
					+"<td>操作</td>"
					+"</tr>";
					var trows="";
					for(var i=0;i<lsst.length;i++){
						var st=lsst[i];
						trows+="<tr align='center'>"
						+"<td>"+st.sid+"</td>"
						+"<td>"+st.sname+"</td>"
						+"<td>"+st.sex+"</td>"
						+"<td>"+st.address+"</td>"
						+"<td>"+st.sdate+"</td>"
						+"<td>"+st.cname+"</td>"
		+"<td><input type='button' value='删除' onclick='dodelete("+st.sid+")'> <input type='button' value='修改' onclick='dofindById("+st.sid+")'></td>"
						+"</tr>"
					}
					
			var endtable=tablehead+trows+"</table>";
			$("#tt").html(endtable);
			$("#rows").val(rows);
			$("#page").val(page);
			$("#pagelale").html(page+"/"+maxpage);
		});
	}
	/********************分页事件********************************/
	$(function(){
		$("#btfirst").click(function(){
			page = 1;
			showAll();
		});
		$("#btup").click(function(){
			page = page- 1;
			if (page < 1) {
				page = 1;
			}
			showAll();
		});
		$("#btnext").click(function(){
			page = page + 1;
			if (page > maxpage) {
				page = maxpage
			}
			showAll();
		});
		$("#btlast").click(function(){
			page = maxpage;
			showAll();
		});
		$("#btrows").click(function(){
			rows=$("#rows").val();
			if (isNaN(rows)) {
				alert("请输入正确的是数字");
				return;
			}
			showAll();
		});
		$("#btpage").click(function(){
			page=$("#page").val();
			if (isNaN(rows)) {
				alert("请输入正确的是数字");
				return;
			}
			showAll();
		});
	});	
	
	
	/********************保存修改事件********************************/
	//保存事件
	$(function(){
		$("#btsave").click(function(){
			//获取表单元素
			var sname = $("#sname").val();
			var sex = $(":radio[name='sex']:checked").val();
			var address = $("#address").val();
			var sdate = $("#sdate").val();
			var cid = $("#classid").val();
			//将获取的表单元素转换成json字符串
			var jsondata = {
				'sname':sname,
				'sex':sex,
				'address':address,
				'sdate':sdate,
				'classid':cid,
			};
			//向服务器发送数保存
			$.post('save_Student.do',jsondata,function(code){
				if (code =='1') {
					alert("b保存成功!");
					showAll();
				} else{
					alert("b保存失败!");
					showAll();
				}
			});
		})
	}); 
	//删除事件
	function dodelete(sid){
		$.get("delById_Student.do?sid="+sid,function(code){
				if (code =='1') {
					alert("删除成功!");
					showAll();
				} else{
					alert("删除失败!");
					showAll();
				}
		})
	}
	//查找事件
	function dofindById(sid){
		$.getJSON("findById_Student.do?sid="+sid,function(st){
			//给文本框赋值
			$("#sid").val(st.sid);
			$("#sname").val(st.sname);
			$(":radio[value="+st.sex+"]").attr("checked",true);
			$("#address").val(st.address);
			$("#sdate").val(st.sdate);
			$("#classid").val(st.classid);
		});
	}
	//更新事件
	$(function(){
		$("#btupdate").click(function(){
			//获取表单元素
			var sid = $("#sid").val();
			var sname = $("#sname").val();
			var sex = $(":radio[name='sex']:checked").val();
			var address = $("#address").val();
			var sdate = $("#sdate").val();
			var cid = $("#classid").val();
			//将获取的表单元素转换成json字符串
			var jsondata = {
				'sid':sid,
				'sname':sname,
				'sex':sex,
				'address':address,
				'sdate':sdate,
				'classid':cid,
			};
			//向服务器发送数保存
			$.post('update_Student.do',jsondata,function(code){
				if (code =='1') {
					alert("b更新成功!");
					showAll();
				} else{
					alert("b保存失败!");
					showAll();
				}
			});
		})
	}); 
</script>
</head>
  <body>
    <p align="center">学生列表</p>
    <hr>
    <div id="tt">
    </div>
     <!-- 分页************************************* -->
 <table width="700" border="1" align="center" cellpadding="1" cellspacing="0">
    <tr align="center" bgcolor="#FFFF99">
      <td bgcolor="#FFFF99"><input type="button" name="btfirst" id="btfirst" value="首页">
      </td>
      <td bgcolor="#FFFF99">
      	  <input type="button" name="btup" id="btup" value="上页">
      	</td>
      <td bgcolor="#FFFF99">
      	<input type="button" name="btnext" id="btnext" value="下页"></td>
      <td bgcolor="#FFFF99">
      	<input type="button" name="btlast" id="btlast" value="末页"></td>
      <td>每页
        <label for="rows"></label>
      <input name="rows" type="text" id="rows" size="2" />
      条记录
      <input type="button" name="btrows" id="btrows" value="确定" onclick="doChangeRows()" /></td>
      <td>跳转到第
        <label for="page"></label>
        <input name="page" value="${pb.page}" type="text" id="page" size="2" />
页
	<input type="button" name="btpage" id="btpage" value="确定" onclick="doChangePage()" /></td>
      <td bgcolor="#FFFF99"><span id="pagelale">1/1页</span></td>
    </tr>
  </table>
    <!-- ************************************** -->
    <hr>
    <form name="form1" method="post">
      <table width="770" border="1" align="center" cellpadding="1" cellspacing="1">
        <tr>
          <td colspan="2" align="center" bgcolor="#FFFF99">学生管理</td>
        </tr>
        <tr>
          <td width="65">姓名</td>
          <td width="372"><input type="text" name="sname" id="sname" /><input type="hidden" name="sid" id="sid" /></td>
        </tr>
        <tr>
          <td>性别</td>
          <td>
          	<input type="radio" name="sex" id="sex0" value="男" checked="checked">男 
          	<input type="radio" name="sex" id="sex1" value="女">女 
          </td>
        </tr>
        <tr>
          <td>地址</td>
          <td><input type="text" name="address" id="address"/></td>
        </tr>
        <tr>
          <td>生日</td>
          
          <td><input type="date" name="sdate" id="sdate" value="1990-01-01"/></td>
        </tr>
        <tr>
          <td>班级</td>
          <td>
          	<select name="classid" id="classid">
          	</select>
          </td>
        </tr>
        <tr>
          <td colspan="2" align="center" bgcolor="#FFFF99">
          <input type="button" id="btsave" value="确定"/>&nbsp;
          <input type="button" id="btupdate" value="修改"/>&nbsp;
          <input type="button" id="btreset" value="重置"/></td>
        </tr>
      </table>
  </body>
</html>

需要注意的是,学生日期这有一个辅助显示日期的属性需要处理!请自行解决!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/96879.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!