一、实现要求:
实训课题
目标:实现一个简单的学生信息系统,主要有学习信息管理和学生成绩管理功能。
实现方式:上机操作。
具体要求:请仔细阅读下方要求
语言方向
Java 1、后端采用javaEEWeb架构,springMVC或者jsp+servlet或者SSH均可
2、 开发工具:eclipse,禁止使用其他开发工具
3、 数据库:mysql
4、 页面排版整洁有序

1、项目名称:StudentManage
2、数据库命名与项目命名一致
1、系统需求
实现一个简单的学生信息系统。主要实现学生信息管理、学生成绩管理功能。
2、主要的数据结构
学生基本信息表 StudentInfo
字段含义 字段名 类型 允许为空 说明
学号 StuID nVarchar(50) No 自动生成,不能重复
姓名 StuName nVarchar(50) No
专业 Profession int No 用下拉列表控件显示,计算机控制、网络安全、计算机应用
入学日期 addDate datetime No 使用日期控件展示
性别 Sex Int NO 使用单选按钮显示,男-1、女-0
身份证号 IDNum nVarchar(20) No 需要验证身份证号码是否正确
总学分 TotalScore Int No 根据总成绩的10%计算
其他说明 Note nvarchar(100) Yes

学生成绩信息表 StuMarkInfo
字段含义 字段名 类型 允许为空 说明
成绩编号 Markid nVarchar(50) No 自动生成,不能重复
学号 StuID nVarchar(50) No 用下拉列表控件显示所有学生,菜单展示学生姓名,存入学号值
课程名称 Coursename nVarchar(50) No
平时成绩 baseScore Numeric(18,2) No 必须大于0
考核成绩 testscore Numeric(18,2) No 必须大于0
最终成绩 FinalScore Numeric(18,2) NO 由平时成绩的40%+实验成绩的60%计算得出
添加日期 AddDate Datetime No 默认当前日期时间
其他说明 Note nvarchar(100) Yes

3、功能描述
具体要求
1、在数据库中按照以上的数据表结构要求,创建相应的数据表
2、需要的页面分别是:学生信息的新增、修改和展示页面,学生成绩的新增和展示页面
3、所有必须采用miniUI,包括弹出框,提示信息等
4、新增、修改页面采用4列布局,页面整齐,没有滚动条出现
首页
首页采用左侧菜单,右侧Iframe实现,点击菜单显示列表
菜单分为:学生管理、成绩管理

学生基本信息管理
学生基本信息管理,分为新增,修改和展示页面。
1、展示页面
A、顶部显示“添加学生”按钮,点击后在新窗口中打开添加页面。
B、展示所有的学生信息,可以根据“姓名、专业”等查询条件来进行查询,姓名模糊查询,专业需使用下拉菜单实现。
C、显示列名:序号—姓名—性别—入学日期—年龄—操作,最后一列操作显示编辑和删除的按钮,点击删除按钮,直接删除该条信息;点击编辑按钮,将弹出信息修改页面,可以对学生信息进行编辑。注意:年龄需根据身份证号取得出生日期后计算。
2、新增页面
A、新增页面能够新增姓名、入学日期、专业、性别、身份证号、其他说明等信息
B、入学日期使用日期控件进行选择,无需获取时分秒。
C、点击保存后关闭新增页面刷新列表

3、修改页面
A、修改页面仅显示“保存修改”按钮。
B、打开修改页面,页面要初始化该条记录的学生名称、入学日期、专业、性别、身份证号、其他说明等信息,仅可修改学生专业,其他不可以修改
C、点击保存修改按钮后,需要保存修改内容,并且关闭用户修改页面。

学生成绩管理
1、实现学生成绩管理,包括成绩记录的新增、删除功能。
2、学生成绩管理的列表页面
A、顶部显示“添加成绩”按钮,点击后在新窗口中打开成绩记录的添加页面
B、展示所有的学生成绩记录,可以根据“添加日期、姓名”来进行模糊查询。列表按添加日期倒排序
C、显示数据列有“序号、姓名、课程名称、平时成绩、考核成绩、最终成绩、其他说明”。最后一列显示删除按钮,点击删除按钮,直接删除该条记录信息
3、学生成绩新增记录页面
A、新增页面能够选择学生,填写课程名称、平时成绩、考核成绩、使用前台JS计算出最终成绩并且可以正确显示到页面最终成绩中。
B、学生选择使用下拉列表展示,绑定所有学号(值属性)和姓名(文本属性),存入数据库时使用学生编号
C、能够根据平时成绩和考核成绩,正确计算出最终成绩并保存到后台。最终成绩由平时成绩的40%+实验成绩的60%计算得出。
D、添加完记录后,需要更新对应学生的总学分,例如:张三的最终成绩是60分,那么总学分就是6学分。总学分=原有学分 + 最终成绩/10。

二、具体实现
数据库:MySql(建表)

我使用的eclipse建的项目。先用新建maven项目

先配置web.xml文件,可以去tomcat/conf/目录下的web.xml中copy

pom.xml中配置maven的依赖,需要什么加什么,资源从网上找

还有tomcat和maven插件

前端我用了miniui,只需要去miniui的官网下载(传送门)。下载好是一个java工程,找到WebContent目录下的scripts和res(可能会用的图片)目录,复制转帖到自己工程的webapp目录下,效果图

第一次写项目,弄清层次搞了好久。最后简陋地分了一下层

废话不多说,上码:
JDBC代码

package com.epoint.dao;import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import com.epoint.entities.Student;
import com.epoint.utils.GetList;public class StudentDao {String Driver="com.mysql.jdbc.Driver";String URL="jdbc:mysql://localhost:3306/sys?useUnicode=true&characterEncoding=utf-8&useSSL=false";String username="root";String password="Gepoint";public Connection getConnection() {Connection con=null;try {Class.forName(Driver);con=DriverManager.getConnection(URL, username, password);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} return con;}public boolean add(Student s) {boolean b=false;Connection con=getConnection();PreparedStatement pst=null;try {pst = con.prepareStatement("insert into studentinfo values(?,?,?,?,?,?,?,?)");pst.setString(1, s.getStuId());pst.setString(2, s.getStuName());pst.setInt(3, s.getProfession());pst.setDate(4, new Date(s.getAddDate().getTime()));pst.setInt(5, s.getSex());pst.setString(6, s.getIdNum());pst.setInt(7, s.getTotalScore());pst.setString(8, s.getNote());if(pst.execute()) {b=true;}}catch (Exception e) {// TODO: handle exception}finally {try {if(pst!=null&&!pst.isClosed()) {pst.close();}if(con!=null&&!con.isClosed()) {con.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return b;}public boolean edit(Student s) {boolean b=false;Connection con=getConnection();PreparedStatement pst=null;try {pst = con.prepareStatement("update studentinfo set StuName=?,Profession=?,addDate=?,Sex=?,IDNum=?,TotalScore=?,Note=? where StuID=?");pst.setString(1, s.getStuName());pst.setInt(2, s.getProfession());pst.setDate(3, new Date(s.getAddDate().getTime()));pst.setInt(4, s.getSex());pst.setString(5, s.getIdNum());pst.setInt(6, s.getTotalScore());pst.setString(7, s.getNote());pst.setString(8, s.getStuId());if(pst.execute()) {b=true;}}catch (Exception e) {// TODO: handle exception}finally {try {if(pst!=null&&!pst.isClosed()) {pst.close();}if(con!=null&&!con.isClosed()) {con.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return b;}public boolean remove(Student s) {boolean b=false;Connection con=getConnection();PreparedStatement pst=null;try {pst = con.prepareStatement("DELETE FROM studentinfo WHERE StuID = ?");pst.setString(1, s.getStuId());if(pst.execute()) {b=true;}}catch (Exception e) {// TODO: handle exception}finally {try {if(pst!=null&&!pst.isClosed()) {pst.close();}if(con!=null&&!con.isClosed()) {con.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return b;}public int getcount() {int i=0;Connection con=getConnection();PreparedStatement pst=null;ResultSet rs=null;try {pst = con.prepareStatement("select count(*) from studentinfo");rs=pst.executeQuery();while (rs.next()) {i=rs.getInt(1);}}catch (Exception e) {// TODO: handle exception}finally {try {if(rs!=null&&!rs.isClosed()) {rs.close();}if(pst!=null&&!pst.isClosed()) {pst.close();}if(con!=null&&!con.isClosed()) {con.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return i;}public List findA(int pageIndex,int pageSize) {List list=new ArrayList();Connection con=getConnection();PreparedStatement pst=null;ResultSet rs=null;try {pst = con.prepareStatement("select * from studentinfo");rs=pst.executeQuery();list=new GetList().getList(rs);}catch (Exception e) {// TODO: handle exception}finally {try {if(rs!=null&&!rs.isClosed()) {rs.close();}if(pst!=null&&!pst.isClosed()) {pst.close();}if(con!=null&&!con.isClosed()) {con.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return list;}public List findS(String stuName) {List list=new ArrayList();Connection con=getConnection();PreparedStatement pst=null;ResultSet rs=null;try {pst = con.prepareStatement("select * from studentinfo where StuName like ?");pst.setString(1, "%"+stuName+"%");rs=pst.executeQuery();list=new GetList().getList(rs);}catch (Exception e) {// TODO: handle exception}finally {try {if(rs!=null&&!rs.isClosed()) {rs.close();}if(pst!=null&&!pst.isClosed()) {pst.close();}if(con!=null&&!con.isClosed()) {con.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}System.out.println(list);//2return list;}
}

实例Student类

package com.epoint.entities;import java.util.Date;public class Student {private String stuId;private String stuName;private int profession;private Date addDate;private int sex;private String idNum;private int totalScore;private String note;public String getStuId() {return stuId;}public void setStuId(String stuId) {this.stuId = stuId;}public String getStuName() {return stuName;}public void setStuName(String stuName) {this.stuName = stuName;}public int getProfession() {return profession;}public void setProfession(int profession) {this.profession = profession;}public Date getAddDate() {return addDate;}public void setAddDate(Date addDate) {this.addDate = addDate;}public int getSex() {return sex;}public void setSex(int sex) {this.sex = sex;}public String getIdNum() {return idNum;}public void setIdNum(String idNum) {this.idNum = idNum;}public int getTotalScore() {return totalScore;}public void setTotalScore(int totalScore) {this.totalScore = totalScore;}public String getNote() {return note;}public void setNote(String note) {this.note = note;}
}

service类

package com.epoint.service;import java.util.HashMap;
import java.util.List;import com.epoint.dao.StudentDao;
import com.epoint.entities.Student;
import com.epoint.utils.*;import com.alibaba.fastjson.*;public class StudentSer {public int getStudentCount() {StudentDao sd=new StudentDao();return sd.getcount();}public String getStudent(int pageIndex,int pageSize) {HashMap result =getStudentResult(pageIndex, pageSize);return new GetJson().encode(result);}public HashMap getStudentResult(int pageIndex,int pageSize)  {List data = new StudentDao().findA(pageIndex, pageSize);int total = new StudentDao().getcount();HashMap result = new HashMap();result.put("data", data);result.put("total", total);return result;}public String searchStudent(String stuName) {List result =searchStudentResult(stuName);JSONArray jsonArray=JSONArray.parseArray(JSON.toJSONString(result));System.out.println(jsonArray);String json=jsonArray.toString();return json;}public List searchStudentResult(String stuName)  {List data = new StudentDao().findS(stuName);    System.out.println(data);//3return data;}public void addStudent(Student s) {StudentDao sd=new StudentDao();sd.add(s);}public void editStudent(Student s) {StudentDao sd=new StudentDao();sd.edit(s);}public void removeStudent(Student s) {StudentDao sd=new StudentDao();sd.remove(s);}
}

三个工具类
getjson

package com.epoint.utils;import com.alibaba.fastjson.*;public class GetJson {public static String encode(Object obj) {if(obj == null || obj.toString().equals("null")) return null;if(obj != null && obj.getClass() == String.class){return obj.toString();}String jsonString = JSON.toJSONStringWithDateFormat(obj, "yyyy-MM-dd HH:mm:ss.SSS");return jsonString;}/*public static Object decode(Object str) {String json = str == null ? null : str.toString();if (StringUtil.isNullOrEmpty(json)) return "";JSONDeserializer deserializer = new JSONDeserializer();deserializer.use(String.class, new DateTransformer("yyyy-MM-dd'T'HH:mm:ss"));       Object obj = deserializer.deserialize(json);if(obj != null && obj.getClass() == String.class){return decode(obj.toString());}       return obj;}*/
}

getlist

package com.epoint.utils;import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;public class GetList {  public List getList(ResultSet rs)throws SQLException{List list=new ArrayList();ResultSetMetaData md = rs.getMetaData();int i=rs.getMetaData().getColumnCount();while(rs.next()) {HashMap map =new HashMap();for(int j=1;j<=i;j++) {map.put(md.getColumnName(j), rs.getObject(j).toString());}list.add(map);}return list;}}

Stringutil

package com.epoint.utils;import java.util.Collection;
import java.util.Iterator;public class StringUtil {public static boolean isNullOrEmpty(Object obj) {   return obj == null || "".equals(obj.toString());}public static String toString(Object obj){if(obj == null) return "null";return obj.toString();}public static String join(Collection s, String delimiter) {StringBuffer buffer = new StringBuffer();Iterator iter = s.iterator();while (iter.hasNext()) {buffer.append(iter.next());if (iter.hasNext()) {buffer.append(delimiter);}}return buffer.toString();}}

四个servlet类
增加和编辑servlet

package student;import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.epoint.entities.Student;
import com.epoint.service.StudentSer;import com.alibaba.fastjson.*;@WebServlet("/studentaddservlet")
public class StudentAddServlet extends HttpServlet {private static final long serialVersionUID = 1L;public StudentAddServlet() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String json=request.getParameter("sjson");Student s=new Student();JSONArray jsonArray=JSONArray.parseArray(JSON.toJSONString(json));JSONObject a=jsonArray.getJSONObject(0);int i=0;if(a.getString("stuId").equals("")) {s.setStuId(UUID.randomUUID().toString().replaceAll("-", ""));}else {i=1;s.setStuId(a.getString("stuId"));}s.setStuName(a.getString("stuName"));s.setProfession(a.getInteger("profession"));SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");try {Date date = format.parse(a.getString("addDate"));s.setAddDate(date);} catch (ParseException e) {e.printStackTrace();}s.setSex(a.getInteger("sex"));s.setIdNum(a.getString("idNum"));s.setTotalScore(0);s.setNote(a.getString("note"));if(i==0) {StudentSer ss=new StudentSer();ss.addStudent(s);}else {StudentSer ss=new StudentSer();ss.editStudent(s);}}
}

表单显示servlet

package student; import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.epoint.service.StudentSer;@WebServlet("/studentinfoservlet")
public class StudentInfoServlet extends HttpServlet {private static final long serialVersionUID = 1L;public StudentInfoServlet() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8");int pageIndex =Integer.parseInt(request.getParameter("pageIndex"));int pageSize =Integer.parseInt(request.getParameter("pageSize"));String json = new StudentSer().getStudent(pageIndex, pageSize);response.getWriter().write(json);}
}

删除servlet

package student;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.epoint.entities.Student;
import com.epoint.service.StudentSer;
@WebServlet("/studentremoveservlet")
public class StudentRemoveServlet  extends HttpServlet{private static final long serialVersionUID = 1L;public StudentRemoveServlet() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); String idStr =request.getParameter("json");   //json为Ajax中的data:{json:row.stuid}if (idStr==null) return;Student s=new Student();String[] ids = idStr.split(",");for (int i = 0, l = ids.length; i < l; i++){String id = ids[i];s.setStuId(id);StudentSer ss=new StudentSer();;ss.removeStudent(s);         //数据库删除对应的记录}}
}

搜索servlet

package student;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.epoint.service.StudentSer;
@WebServlet("/studentsearchservlet")
public class StudentSearchServlet  extends HttpServlet{private static final long serialVersionUID = 1L;public StudentSearchServlet() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); String key =request.getParameter("key");System.out.println(key);//11String json = new StudentSer().searchStudent(key);System.out.println(json);response.getWriter().write(json);}
}

前端代码
datagrid

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>表格</title><script src="../scripts/boot.js" type="text/javascript"></script></head>
<body><div style="padding-bottom:5px;"><div class="mini-toolbar" style="border-bottom:0;padding:0px;"><table style="width:100%;"><tr><td style="width:100%;"><a class="mini-button" iconCls="icon-add" onclick="add()">增加</a><a class="mini-button" iconCls="icon-remove" onclick="remove()">删除</a>       </td><td style="white-space:nowrap;"><input id="key" class="mini-textbox" emptyText="请输入姓名" style="width:150px;" onenter="onKeyEnter"/>   <a class="mini-button" onclick="search()">查询</a></td></tr></table>           </div> </div><div id="datagrid1" class="mini-datagrid"  url="../studentinfoservlet" multiSelect="true"idField="id" allowResize="true" title="学生信息"><div property="columns"><div type="checkcolumn" ></div> <div type="indexcolumn" ></div><div field="StuName" width="120" headerAlign="center" align="center">学生姓名</div>    <div field="Profession" width="120" headerAlign="center" renderer="onGenderRenderer1" align="center">专业</div>                            <div field="addDate" width="100" headerAlign="center" dateFormat="yyyy-MM-dd" align="center">创建日期</div><div field="Sex" width="100" headerAlign="center" renderer="onGenderRenderer" align="center">性别</div>                                <div field="IDNum" width="100"   headerAlign="center" align="center">身份证号</div><div field="totalScore" width="100" headerAlign="center" align="center">总学分</div>  <div field="Note" width="100" headerAlign="center" align="center">其他</div>    <div name="action" width="100" headerAlign="center" renderer="draw" align="center">操作</div>             </div>
</div><script type="text/javascript">//初始化miniuimini.parse();var grid = mini.get("datagrid1");grid.load();function add() {mini.open({targetWindow: window,url: bootPATH + "../studentinfo/studentinfoadd.html",title: "新增学生", width: 530, height: 400,allowDrag:false,onload: function () {/*//父窗口向子窗口传值;var iframe = this.getIFrameEl();var data = { action: "new" };iframe.contentWindow.SetData(data);*/},ondestroy: function (action) {grid.reload();}});}function draw(e) {var grid = e.sender;var record = e.record;var uid = record.id;var rowIndex = e.rowIndex;var s="<a class='mini-button' onclick='edit()' style='width:50px;height:20px;padding-top:5px;'>修改</a><a class='mini-button' onclick='removeline()' style='width:50px;height:20px;margin-left:5px;padding-top:5px;'>删除</a> ";return s;}function removeline(){var row = grid.getSelected();if(row){if (mini.confirm("确定删除该行记录?")) {var id = row.StuID;grid.loading("操作中,请稍后......");$.ajax({url: '../studentremoveservlet',data:{json:id},type:'post',success: function (text) {grid.reload();},error: function () {}});}}}function edit() {var row = grid.getSelected();if (row) {mini.open({url: "studentinfoedit.html",title: "编辑学生", width: 530, height: 400,onload: function () {var iframe = this.getIFrameEl();var data = { action: "edit", id: row.StuID, name: row.StuName, profession: row.Profession, sex:row.Sex, ts:row.TotalScore, note:row.Note, addDate:row.addDate, idNum:row.IDNum};iframe.contentWindow.SetData(data); },ondestroy: function (action) {grid.reload();}});} else {alert("请选中一条记录");}}function remove() {var rows = grid.getSelecteds();if (rows.length > 0) {if (mini.confirm("确定删除选中记录?")) {var ids = [];for (var i = 0; i < rows.length; i++) {var r = rows[i];ids.push(r.StuID);}var id = ids.join(',');grid.loading("操作中,请稍后......");$.ajax({url: '../studentremoveservlet',data:{json:id},type:'post',success: function (text) {grid.reload();},error: function () {}});}} else {mini.alert("请选中一条记录");}}function search() {var key = mini.get("key").getValue();grid.setUrl("../studentsearchservlet");grid.load({key:key});}function onKeyEnter(e) {search();}//JS函数绑定输出格式function onBirthdayRenderer(e) {var value = e.value;if (value) return mini.formatDate(value, 'yyyy-MM-dd');return "";}var Genders = [{ id: 1, text: '男' }, { id: 2, text: '女'}];        function onGenderRenderer(e) {for (var i = 0, l = Genders.length; i < l; i++) {var g = Genders[i];if (g.id == e.value) return g.text;}return "";}var Genders1 = [{ id: 1, text: '物联网' }, { id: 2, text: '软件工程'}, { id: 3, text: '计算机科学'}];        function onGenderRenderer1(e) {for (var i = 0, l = Genders1.length; i < l; i++) {var g = Genders1[i];if (g.id == e.value) return g.text;}return "";}</script>
</body>
</html>

添加页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>学生增加</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" /><script src="../scripts/boot.js" type="text/javascript"></script><style type="text/css">html, body {padding:0;margin:0;border:0;height:100%;overflow:hidden;
}</style>
</head>
<body><form id="form1" method="post"style="margin-left: 15px; margin-right: 15px;"><input name="stuId" class="mini-hidden" /><div style="padding-left: 11px; padding-bottom: 5px;"><table style="table-layout: fixed;"><tr style="height: 50px"><td style="width: 80px;">姓名:</td><td style="width: 150px;"><input name="stuName"class="mini-textbox" required="true" emptyText="请输入姓名" /></td><td style="width: 80px;">专业:</td><td style="width: 150px;"><input name="profession"id="profession" class="mini-combobox" valueField="professionId"textField="professionName" url="Data/profession.txt"required="true" emptyText="请选择专业" /></td></tr><tr style="height: 50px"><td>入学日期:</td><td><input name="addDate" class="mini-datepicker"required="true" emptyText="请选择日期" /></td><td>性别:</td><td><div name="sex" class="mini-radiobuttonlist" repeatItems="2"repeatLayout="table" repeatDirection="vertical" textField="sexName"valueField="sexId" value="cn" url="Data/sex.txt"></div></td></tr><tr style="height: 50px"><td>身份证号:</td><td><input name="idNum" class="mini-textbox" required="true"emptyText="请输入身份证号" /></td></tr><tr style="height: 130px"><td>其他:</td><td colspan="3"><input name="note" class="mini-textarea"style="width: 386px; height: 100px;" /></td></tr><tr style="height: 50px"><td colspan="4"><div style="text-align: center; padding: 10px;"><a class="mini-button" onclick="onOk"style="width: 60px; margin-right: 20px;">确定</a> <a                                class="mini-button" onclick="onCancel" style="width: 60px;">取消</a></div></td></tr></table></div></form><script type="text/javascript">mini.parse();var form = new mini.Form("form1");function SaveData() {var o = form.getData();form.validate();if (form.isValid() == false)return;var json = mini.encode([ o ]);$.ajax({url : "../studentaddservlet",type : 'post',data : {sjson : json},cache : false,success : function(text) {mini.alert("保存成功", "提示", function() {CloseWindow();});},error : function(jqXHR, textStatus, errorThrown) {mini.alert(json, "提示", function() {CloseWindow();});}});}function SetData(data) {if (data.action == "edit") {//跨页面传递的数据对象,克隆后才可以安全使用data = mini.clone(data);$.ajax({url : "../data/AjaxService.jsp?method=GetEmployee&id="+ data.id,cache : false,success : function(text) {var o = mini.decode(text);form.setData(o);form.setChanged(false);//onDeptChanged();//mini.getbyName("position").setValue(o.position);}});}}function CloseWindow(action) {if (action == "close" && form.isChanged()) {if (confirm("数据被修改了,是否先保存?")) {return false;}}if (window.CloseOwnerWindow)return window.CloseOwnerWindow(action);elsewindow.close();}function onOk(e) {SaveData();}function onCancel(e) {CloseWindow("cancel");}</script>
</body>
</html>

修改页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head><title>学生增加</title><meta http-equiv="content-type" content="text/html; charset=UTF-8" /><script src="../scripts/boot.js" type="text/javascript"></script><style type="text/css">html, body{        padding:0;margin:0;border:0;height:100%;overflow:hidden;}</style>
</head>
<body>    <form id="form1" method="post" style="margin-left:15px;margin-right:15px;"><input name="id" class="mini-hidden" /><div style="padding-left:11px;padding-bottom:5px;"><table style="table-layout:fixed;"><tr style="height:50px"><td style="width:80px;">姓名:</td><td style="width:150px;">    <input name="stuName" class="mini-textbox" required="true"  emptyText="请输入姓名"/><input name="stuId" class="mini-textbox" style="display:none" /></td><td style="width:80px;">专业:</td><td style="width:150px;">    <input name="profession" id="profession" class="mini-combobox" valueField="professionId" textField="professionName" url="Data/profession.txt" required="true" emptyText="请选择专业" /></td></tr><tr style="height:50px"><td >入学日期:</td><td >    <input name="addDate" class="mini-datepicker"required="true" emptyText="请选择日期" /></td><td >性别:</td><td >    <div name="sex" class="mini-radiobuttonlist" repeatItems="2"repeatLayout="table" repeatDirection="vertical" textField="sexName"valueField="sexId" value="cn" url="Data/sex.txt"></div></td></tr><tr style="height:50px"><td >身份证号:</td><td >    <input name="idNum" class="mini-textbox" required="true" emptyText="请输入身份证号"  /></td><td >总学分:</td><td >    <input name="totalScore" class="mini-textbox" readonly="readonly"  /></td></tr><tr style="height:130px"><td >其他:</td><td colspan="3">    <input name="note" class="mini-textarea" style="width:386px;height:100px;" /></td></tr><tr style="height:50px"><td colspan="4"><div style="text-align: center; padding: 10px;"><a class="mini-button" onclick="onOk"style="width: 60px; margin-right: 20px;">确定</a> <a                                class="mini-button" onclick="onCancel" style="width: 60px;">取消</a></div></td></tr>           </table></div>        </form><script type="text/javascript">mini.parse();var form = new mini.Form("form1");function SaveData() {var o = form.getData(); form.validate();if (form.isValid() == false) return;var json = mini.encode([o]);$.ajax({url: "../studentaddservlet",type: 'post',data: { sjson: json },cache: false,success: function (text) {mini.alert("修改成功","提示",function(){CloseWindow();});},error: function (jqXHR, textStatus, errorThrown) {mini.alert("修改失败","提示",function(){CloseWindow();});}});}//标准方法接口定义function SetData(data) {if (data.action == "edit") {//跨页面传递的数据对象,克隆后才可以安全使用data = mini.clone(data);var text = mini.decode({stuId:data.id,stuName:data.name,profession:data.profession,addDate:data.addDate, sex:data.sex, idNum:data.idNum, totalScore:data.ts,note:data.note});form.setData(text);}}function CloseWindow(action) {            if (action == "close" && form.isChanged()) {if (confirm("数据被修改了,是否先保存?")) {return false;}}if (window.CloseOwnerWindow) return window.CloseOwnerWindow(action);else window.close();            }function onOk(e) {SaveData();}function onCancel(e) {CloseWindow("cancel");}</script>
</body>
</html>

初次maven实现学生信息系统相关推荐

  1. python做学生管理系统数据库模型_数据库建模:学生信息系统搭建实验

    首先必须理清学生信息系统有哪些实体,这些实体之间的关系又是如何的,他们之间是怎么进行关联的 实体有哪些: 学生表(student) 专业表(major) 课程表(course) 成绩表(grade) ...

  2. 学生信息系统——优化总结(干货篇一)

    引言 我在做学生系统的时候其实很多时候都是晕的,刚开始觉得特别的复杂:但是等我做完的时候发现这里面很多的都是重复的,不光代码重复,思路.窗体间结构都是重复的.一句话总结:其实学生信息系统就是增.删.改 ...

  3. 学生信息系统求助_学生管理信息系统_示例

    第 1 页 共 3 页 学生信息管理数据库系统设计与开发 一 . 项目说明 一.概述 1 .项目背景:数据库程序设计 2 .编写目的:掌握数据库设计原理及相关软件的使用 3 .软件定义:学生信息管理系 ...

  4. c语言学生信息系统 完整版,C语言 学生信息管理系统(完整版).docx

    C语言 学生信息管理系统(完整版) 电子科技大学成都学院 程序综合设计论文 论文题目 学生信息管理系统 学生姓名 魏国 学 号 1340840625 专 业 机械设计制造及其自动化 系(分院) 电子工 ...

  5. 学生信息系统求助_Student Information Management -一个简单的学生信息管理系统(持续更新2)...

    这次更新的内容 1:优化了增加学生信息的函数 2:   增加了删除学生信息的功能 系统图 图片发自简书App 第一次见到的库和函数 #include "memory.h" void ...

  6. 学生信息系统求助_一个学生信息录入和查询的系统

    我们asp.net 作业大神帮帮忙. 一个学生信息录入和查询的系统.主要分成以下几个页面.我在描述的时候,请大家对照课本找到相关章节并做上记号,方便后面的制作. 首先需要大家制作一个数据库.这个数据库 ...

  7. python循环输入若干学生信息网_python最简学生信息系统,练习while

    # -*- coding: utf-8 -*- sdudents={} def showMenu(): msg=''' 学生管理系统 1.增加 2.删除 3.更新 4.查询 5.显示所有 6.退出 ' ...

  8. 入门php学习 -- 学生信息系统

    这一系列的博客,是为了理顺我在学php上的思路:感觉自己一直在写,但是却不知道写的是什么,一直跟着别人的思路在走,想要有自己的想法以及写代码的能力:为此,我决定将之前自己敲过的代码,整理一下,通过博客 ...

  9. springboot+maven+jwt学生信息增删查改

    maven3.6.0下载链接:maven-3/3.6.0/ (33条消息) 使用IntelliJ IDEA 配置Maven(入门)_等想出来再取的博客-CSDN博客_idea maven 利用Spri ...

最新文章

  1. Elasticsearch的前后台运行与停止(rpm包方式)
  2. Android-如何开发一个功能强大的图片选择器
  3. 时空大数据赋能智慧城市的思考和实践
  4. Python并发Gevent库(一)
  5. Express的基本路由实现对get和post等的请求和响应
  6. [转]侯捷对进入IT行业的年轻人的建议
  7. java私有成员的访问_java – 使用私有成员或公共访问器的方法
  8. 电商购物后台管理系统总结
  9. 【国产mcu填坑篇】------STC(宏晶)
  10. 产品生命周期管理(PLM)
  11. Mysql如何跨库查询数据?
  12. 高电压技术-名词解释题
  13. Linux清理入侵痕迹
  14. Chapter 6-Blurring Things Up之Using Alpha Channel
  15. 从20s优化到500ms,我用了这三招
  16. 轻量级模型设计与部署总结
  17. jQuery 操作属性
  18. python生成日期列表_PYTHON生成日期维度表
  19. Appium+python+夜深模拟器联调---入门篇(1)
  20. 软件制作 asp.net sqlserver access

热门文章

  1. 区分: for example, such as, like
  2. 汽车通信协议系列1_通信协议类型
  3. Windows 上最好用的 5 个 EPUB 阅读器(转载)
  4. 7-8 逆序输出英文语句
  5. python动物专家系统_用Python实现一个动物识别专家系统--人工智能作业分享
  6. 如何在html设计页面做超链接,网页设计超链接怎么弄 网页设计里面的返回超链接怎么弄啊...
  7. python查微信好友是否删除自己_看看python怎么知道谁把你微信拉黑了
  8. python3怎么切换汉版_python3 中文繁体转换简体,简体转换为繁体,汉字转换拼音...
  9. Python(十三)- 常用内置模块与第三方库
  10. Socket网络编程tcp聊天案例(心跳包,多线程,断线重连机制)