hibernate、easyui、struts2整合

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生表</title>
<!-- 1jQuery的js包 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/jquery.min.js"></script>
<!-- 2css资源 -->
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/default/easyui.css">   
<!-- 3图标资源 -->
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/icon.css">   
<!-- 4easyui的js包 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/jquery.easyui.min.js"></script>   <!-- 5本地语言包 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/locale/easyui-lang-zh_CN.js"></script></head>
<body><script type="text/javascript">
//把long型的日期改成yyyy-MM-dd
function getDate(date){//得到日期对象var d=new Date(date)//得到年月日var year=d.getFullYear();var month=(d.getMonth()+1);var day=d.getDate();var rtn=year +"-"+(month<10 ? "0"+month:month)+"-"+(day<10 ? "0"+day:day)return rtn;
}var type="add";$(function(){//创建DataGrid$("#dg").datagrid({    url:'getStudentlist.action', //数据来源//冻结列frozenColumns:[[{field:'id',checkbox:true},{field:'sno',title:'学生编号',width:100}]],//列的定义columns:[[    {field:'sname',title:'学生名',width:100},    {field:'ssex',title:'性别',width:100},    {field:'sclass',title:'班级',width:100,align:'right'},{field:'sbirthday',title:'生日',width:200,align:'center',formatter: function(value,row,index){var valuee = new Date(value).toLocaleDateString();if(valuee == 'Invalid Date'){return '无' ;}else{//return valuee;return getDate(valuee);}}}]],remoteSort:true,//是否服务器端排序	sortOrder:'desc',//排序方式sortName:'sno',//排序字段fitColumns:false,//列自适应宽度 ,不能和冻结列同时设置为truestriped:true,//斑马线效果idField:'sno',//主键列rownumbers:true,//显示行号singleSelect:false,//是否单选pagination:true,//显示分页栏pageList:[10,20,30,40],//每页行数选择列表pageSize:10,//初始每页行数multiSort:true,//是否允许多列排序toolbar:[{iconCls:'icon-search',text:'查询',handler:function(){//序列化表单查询var f=$("#form2").serialize();$("#dg").datagrid({url:"getStudentlist.action?"+f});}},{iconCls:'icon-add',text:'添加',handler:function(){$("#sno").textbox({readonly:false});type="add";//清除表单旧数据$("#form1").form("reset");$("#saveStu").dialog({title:'添加学生'}).dialog('open');}},{iconCls:'icon-edit',text:'修改',handler:function(){type="edit";//判断是否选中一条数据var data =$('#dg').datagrid('getSelected');if(data){//alert(data);//设置字段只读$("#sno").textbox({readonly:true});$("#form1").form('reset');$("#form1").form("load",{sno:data.sno,ssex:data.ssex,sclass:data.sclass,		sname:data.sname,sbirthday:getDate(data.sbirthday)});//$('form').('load',data);$("#saveStu").dialog({title:'修改学生'}).dialog('open');}else{$.messager.show({title:'提示',msg:'请选中一条记录'			});}}},{iconCls:'icon-remove',text:'删除',handler:function(){//判断是否选中一条数据var data =$('#dg').datagrid('getSelections');if(data.length>0){$.messager.confirm("确认","确实删除吗?",function(r){if(r){//alert("执行删除");//用数组保存选中记录的主键var snos=[];for(var i=0;i<data.length;i++){snos[i]=data[i].sno;}$.get("deleteStudentServlet?sno="+snos,function(rtn){//alert(rtn);var msg= eval("("+rtn+")");if(msg.success){$("#dg").datagrid('reload');}$.messager.show({title:"提示",msg:msg.message});});}else{}})}else{$.messager.show({title:'提示',msg:'请选中一条记录'			});}}}]}); })</script>
<div id="search" class="easyui-panel" title="查询条件" style="heiget:100px"
data-options="{iconCls:'icon-search',collapsible:true}">
<form id="form2">名称:<input class="easyui-textbox" id="sname_s" name="sname_s">
班级:<input class="easyui-textbox" id="sclass_s" name="sclass_s"></form></div><table id="dg" >       
</table><div class="easyui-dialog" id="saveStu" style="width:400px;height:300px;top:50px;"
title="添加学生" data-options="{closed:true,modal:true,
buttons:[{text:'保存',iconCls:'icon-save',handler:function(){$('#form1').form('submit',{
url:'SaveStudentServlet?type='+type,
onSubmit:function(){var isValid =$(this).form('validate');					if(!isValid){$.messager.show({title:'消息',msg:'数据验证未通过'});}return isValid;
},
success:function(data){var msg=eval('('+data+')');if(!msg.success){alert(msg.message);}else{	//$('#dg').datagrid('reload');$.messager.show({title:'提示',msg:msg.message});$('#saveStu').dialog('close');}
}
});}},
{text:'取消',iconCls:'icon-cancel',handler:function(){
$('#saveStu').dialog('close');
}}]}"><form action="" id="form1" method="post">
<br><br>
<table>
<tr>
<td align="right" width=30%>学号:</td>
<td><input class="easyui-textbox" id="sno" name="sno" data-options=
"{required:true,validType:'length[3,5]'}"></td>
</tr>
<tr>
<td align="right" width=30%>名称:</td>
<td><input class="easyui-textbox"  name="sname" data-options=
"{required:true,validType:'length[2,4]'}"></td>
</tr>
<tr>
<td align="right" width=30%>性别:</td>
<td><input type="radio"  name="ssex" checked
value="男">男
<input type="radio"  name="ssex" 
value="女">女</td>
</tr>
<tr>
<td align="right" width=30%>班级:</td>
<td><input class="easyui-textbox"  name="sclass" data-options=
"{required:true,validType:'length[2,4]'}"></td>
</tr>
<tr>
<td align="right" width=30%>生日:</td>
<td><input class="easyui-datebox"  name="sbirthday" ></td>
</tr></table></form>
</div></body>
</html>

  

package com.hanqi.dao;import java.util.ArrayList;
import java.util.List;
import java.util.Map;import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;import com.hanqi.entity.Student;public class StudentDAO {Configuration cfg=null;ServiceRegistry sr=null;SessionFactory sf=null;Session se=null;Transaction tr=null;public StudentDAO(){//加载配置文件cfg=new Configuration().configure();//注册服务sr=new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();}//初始化private void init(){sf=cfg.buildSessionFactory(sr);se=sf.openSession();tr=se.beginTransaction();}//提交和释放资源private void destory(){tr.commit();se.close();sf.close();	}//添加数据public void insert(Student stu){init();se.save(stu);destory();}//修改 数据public void update(Student stu){init();se.update(stu);destory();}//删除public void delete(String sno){init();//Student st=(Student)se.get(Student.class, sno);//se.delete(st);//SQL方式执行删除se.createQuery("delete from Student where sno=?").setString(0, sno).executeUpdate();	destory();}//获取分页的数据集合public List<Student> getPageList(int page,int rows,Map<String, String> where,String sort){System.out.println(sort+ "dao");List<Student> rtn=new ArrayList<Student>();init();//创建基础HQL语句String sql="from Student where 1=1";//判断传递的参数String sname= where.get("sname_s");if(sname!=null&&!sname.equals("")){sql+="and sname=:sname";}String sclass= where.get("sclass_s");if(sclass!=null&&!sclass.equals("")){sql+="and sclass=:sclass";}if(sort!=null&&!sort.equals("")){sql+=" order by "+ sort;}//得到HQLQuery q=se.createQuery(sql);if(sname!=null&&!sname.equals("")){q.setString("sname", sname);}if(sclass!=null&&!sclass.equals("")){q.setString("sclass",sclass);}rtn=q.setFirstResult((page-1)*rows).setMaxResults(rows).list();destory();return rtn;}//获取数据条数public int getTotal(Map<String, String> where){int rtn=0;init();String sql="select count(1)from Student where 1=1";//判断传递的参数String sname= where.get("sname_s");if(sname!=null&&!sname.equals("")){sql+="and sname=:sname";}String sclass= where.get("sclass_s");if(sclass!=null&&!sclass.equals("")){sql+="and sclass=:sclass";}//得到HQLQuery q=se.createQuery(sql);if(sname!=null&&!sname.equals("")){q.setString("sname", sname);}if(sclass!=null&&!sclass.equals("")){q.setString("sclass",sclass);}//List<Object> lo=se.createQuery("select count(1)from Student").list();List<Object> lo=q.list();if(lo!=null&&lo.size()>0){rtn=Integer.parseInt(lo.get(0).toString());}destory();return rtn;}}

  

package com.hanqi.entity;import java.util.Date;public class Student {private String sno,sname,ssex,sclass;private Date sbirthday;public String getSno() {return sno;}public void setSno(String sno) {this.sno = sno;}public String getSname() {return sname;}public void setSname(String sname) {this.sname = sname;}public String getSsex() {return ssex;}public void setSsex(String ssex) {this.ssex = ssex;}public String getSclass() {return sclass;}public void setSclass(String sclass) {this.sclass = sclass;}public Date getSbirthday() {return sbirthday;}public void setSbirthday(Date sbirthday) {this.sbirthday = sbirthday;}}

  

package com.hanqi.Service;import java.util.HashMap;
import java.util.List;
import java.util.Map;import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.hanqi.dao.StudentDAO;
import com.hanqi.entity.Student;public class StudentService {public void addStudeng(Student stu){new StudentDAO().insert(stu);}//查询分页数据//返回JSONpublic String getPageJSON(int page,int rows,Map<String, String> where,String sort){ PageJson<Student>pj=new PageJson<>();String rtn="{'total':0,'rows':[]}";int total=new StudentDAO().getTotal(where);if(total>0){System.out.println(sort+ "service");List<Student> ls=new StudentDAO().getPageList(page, rows,where,sort);//String ls_json=JSONArray.toJSONString(ls);//rtn="{\"total\":"+total+",\"rows\":"+ls_json+"}";pj.setTotal(total);pj.setRows(ls);rtn=JSONObject.toJSONString(pj);}return rtn;}public void editStu(Student stu){new StudentDAO().update(stu);}public void delete(String sno){new StudentDAO().delete(sno);}}

  

package com.hanqi.action;public class TestAction {private String msg;private String name;public String testGet(){System.out.println("处理get请求");msg="{\"success\":true,\"message\":\"666\"}";name="tom";return "success";}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

  struts2

 

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><!-- 设置过滤的扩展名 -->
<constant name="struts.action.extension" value="do,action,,"></constant><package name="test" extends="json-default"><action name="TestGet"
class="com.hanqi.action.TestAction"
method="testGet"><!-- 返回了JSON格式的Action对象  -->
<result type="json"><param name="root">msg</param></result></action></package><package name="stu" extends="json-default"><action name="getStudentlist"class="com.hanqi.action.StudentAction"method="getStudentlis-t"></action></package>
</struts>

  

转载于:https://www.cnblogs.com/nicebaby/p/6192564.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/572907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

selinux= 为 disabled_CentOS7关闭防火墙和SELinux

关闭防火墙查看防火墙状态[rootlocalhost ~]# systemctl status firewalld临时关闭&#xff08;下次开机启动&#xff0c;自动启动防火墙&#xff09;[rootlocalhost ~]# systemctl stop firewalld永久关闭防火墙&#xff08;开机启动时不在启动&#xff09;[rootlocalhost ~]#…

selenium 基本的键盘方法

selenium 基本的键盘方法 今晚不想加班&#xff0c;于是赶紧回来看看书&#xff1a; 1.下了selenium的小工具&#xff1a;FireBug/FirePath。 2.确定了看书顺序&#xff0c;我觉得难度低点开始比较好&#xff0c;所以我还是先看基于Python的selenium&#xff0c;另一本书再看把…

计算机主机组成部分和功能,电脑的组成部分及作用

对于很多人来讲&#xff0c;电脑的使用似乎是一件很稀松平常的事情了。但是对于一些新手或者是一些初学者来说&#xff0c;电脑的相关组成部件还有相应的作用都不是很熟悉&#xff0c;那么电脑的组成部分及作用是什么呢?下面是学习啦小编收集的关于电脑的组成部分及作用&#…

android8 通知呼吸灯_正在消失的功能,为什么越来越多的手机没有呼吸灯?你知道原因吗...

正在消失的功能&#xff0c;为什么越来越多的手机没有呼吸灯&#xff1f;你知道原因吗其实说到手机呼吸灯&#xff0c;大家应该都不陌生&#xff0c;毕竟如果你有心心念念的人儿&#xff0c;每次呼吸灯闪烁&#xff0c;都会迫不及待的打开手机查看消息&#xff0c;想看看是不是…

asp 使用TreeView控件

这段代码为了使用 TreeNodeCheckChanged 事件&#xff0c;会有回刷新的效果&#xff1b; 不喜欢的可查看改进版&#xff0c;利用js控制选择操作&#xff0c;无界面刷新&#xff0c; “http://www.cnblogs.com/GoCircle/p/6231985.html”&#xff1b; 前台代码 <style>.tn…

巴川数据科学炼成记_【脑王直通车】小小记忆高手炼成记

“ 记住150个随机数字&#xff0c;你需要多久&#xff1f;【脑王直通车】第8站到来&#xff0c;杨老师将他在《最强大脑》比赛中运用的记忆方法倾囊相授&#xff0c;孩子们变身小小记忆高手&#xff01;”记忆探秘你们知道记忆是什么吗&#xff1f;我们从小到大&#xff0c;无论…

2013年4月管理计算机应用,全国2013年4月高等教育自学考试管理系统中计算机应用试题及答案...

我自己整合过的,相当的详细,几乎设计了出现的所有的知识的哦!!全国2013年4月高等教育自学考试管理系统中计算机应用试题课程代码&#xff1a;00051请考生按规定用笔将所有试题的答案涂、写在答题纸上。选择题部分注意事项&#xff1a;1. 答题前&#xff0c;考生务必将自己的考试…

[BZOJ3173][Tjoi2013]最长上升子序列

[BZOJ3173][Tjoi2013]最长上升子序列 试题描述 给定一个序列&#xff0c;初始为空。现在我们将1到N的数字插入到序列中&#xff0c;每次将一个数字插入到一个特定的位置。每插入一个数字&#xff0c;我们都想知道此时最长上升子序列长度是多少&#xff1f;输入 第一行一个整数N…

lrange是取出所有值并移除么_图解双指针 | LeetCode 27. 移除元素

题目描述 原题链接&#xff1a;LeetCode 27. 移除元素给定一个数组 nums 和一个值 val&#xff0c;你需要原地移除所有数值等于 val 的元素&#xff0c;返回移除后数组的新长度。不要使用额外的数组空间&#xff0c;你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成…

计算机辅助工程分析及应用论文,计算机辅助工程计量的论文

【摘要】随着科学技术的不断进步&#xff0c;计算机辅助工程计量的技术也日趋成熟并得到广泛应用。下面就广联达图形算量作以简要概述。【关键词】计算机、辅助、工程计量一、gcl7.0图形算量软件应用综述广联达图形算量软件gcl7.0是专为在目前传统定额模式向清单模式过渡时期量…

Effective前端5:减少前端代码耦合

什么是代码耦合&#xff1f;代码耦合的表现是改了一点毛发而牵动了全身&#xff0c;或者是想要改点东西&#xff0c;需要在一堆代码里面找半天。由于前端需要组织js/css/html&#xff0c;耦合的问题可能会更加明显&#xff0c;下面按照耦合的情况分别说明&#xff1a; 1. 避免全…

戴尔笔记本电脑的计算机配置在哪,戴尔电脑的便签在哪里?笔记本电脑怎么设置便签?...

戴尔电脑是国内一些用户所使用的电脑品牌。如果戴尔电脑安装的是Windows系统&#xff0c;是可以在电脑附件中找到系统自带的便笺或者Sticky Notes工具的&#xff0c;可以粘贴在电脑桌面上记录简单的文字内容&#xff0c;但并不支持设置待办提醒事项。除了系统自带便笺之外&…

12帧跑步动画分解图_画出人物跑步的动画运动规律,并上传动画效果视频和逐帧图片。...

【判断题】在竞争激烈的市场环境中,职业生的就业优势是证书【简答题】请把今天的语文作业拍照、语音上传,谢谢!【简答题】请把今天的语文作业拍照上传,今日古诗语音上传,谢谢!【简答题】请把今天的作业拍照、语音上传,谢谢!【判断题】职业纵向发展只体现在技术和职务提升。【判…

VMWare MAC系统调整磁盘

VMware&#xff0c;打开虚拟文件&#xff0c;调整磁盘大小。 从40G调整到80G 进入虚拟机&#xff0c;打开终端 diskutil list;diskutil resizeVolume disk0s2 80GB http://blog.csdn.net/binyao02123202/article/details/51629288转载于:https://www.cnblogs.com/cb168/p/62096…

约翰诺曼超级计算机研究中心,第433章 拉泽尔松教授的决定_学霸的黑科技系统_晨星LL作品_du00...

就在陆舟与格林教授达成共识的时候&#xff0c;他在普林斯顿高等研究院的办公室外面&#xff0c;正晃悠着一个奇怪的人影。似乎是犹豫了一会儿&#xff0c;那人敲开门&#xff0c;走进了办公室。“请问这里是陆舟教授的办公室吗&#xff1f;”停下手中的笔&#xff0c;薇拉开口…

java并发编程(十七)内存操作总结

转载请注明出处&#xff1a;http://blog.csdn.net/ns_code/article/details/17377197 主内存与工作内存 Java内存模型的主要目标是定义程序中各个变量的访问规则&#xff0c;即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量主要是指共享变量&#x…

柔性体没有应变_边坡防护终结篇!柔性防护系统(主被动网)知识总结!

筑龙岩土20万岩土人在这里关注来源&#xff1a;北京科技大学课件版权归原作者所有有粉丝一定发现我们推送的几篇关于边坡防护与加固的文章&#xff0c;均整理自北京科技大学的课件。没有注意到的可以回顾一下下面的系列文章&#xff0c;今天还剩最后一小点&#xff0c;落石防护…

计算机原理中的cps,信息物理融合系统(CPS)原理

信息物理融合系统(CPS)原理语音编辑锁定讨论上传视频《信息物理融合系统(CPS)原理》是2017年机械工业出版社出版的图书&#xff0c;作者是[美] &#xfffd;拉吉夫阿卢尔&#xff0c;董云卫翻译。[1]书 名信息物理融合系统(CPS)原理作 者[美] &#xfffd;拉吉夫阿卢尔译…

十六周个人作业

计划估计此程序需要3-5天。 开发需求分析用户故事&#xff1a;作为一个观众&#xff0c;我希望了解某一场比赛的比分&#xff0c;以便了解赛况。&#xff08;满意条件&#xff1a;精确到每一局的结果比分&#xff09;。 从分析用例故事可以知道完成此程序需要这两项任务&#x…

新型计算机作文1000,人类:感性的计算机作文1000字

库克似乎并不担心人工智能研究者所说的“奇点”之到来。对于创造新物种的企愿毕竟是刻入基因序列中的&#xff0c;潘多拉魔盒迟早会开&#xff0c;而经由人类这并不完美的造物之手诞生的、可机会趋近完美的人工智能&#xff0c;是否会超越人的思维极限&#xff0c;或拥有与人相…