<!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,//列自适应宽度 ,不能和冻结列同时设置为true
striped: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;
}
//得到HQL
Query 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";
} //得到HQL
Query 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);
} //查询分页数据
//返回JSON public 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>

  

hibernate、easyui、struts2整合的更多相关文章

  1. hibernate与struts2整合中出现问题以及一级缓存查询数据在业务层问题

    直接上问题: org.hibernate.HibernateException: HHH000142: Javassist Enhancement failed: cn.xxx.pojo.Custom ...

  2. Hibernate和Struts2整合的增、删、改、查

    1. 新建一个Web项目,准备好jar包和配置文件. 2. web.xml文件中添加过滤器 <?xml version="1.0" encoding="UTF-8& ...

  3. 【Java EE 学习 53】【Spring学习第五天】【Spring整合Hibernate】【Spring整合Hibernate、Struts2】【问题:整合hibernate之后事务不能回滚】

    一.Spring整合Hibernate 1.如果一个DAO 类继承了HibernateDaoSupport,只需要在spring配置文件中注入SessionFactory就可以了:如果一个DAO类没有 ...

  4. struts2,hibernate,spring整合笔记(3)

    struts2,hibernate,spring整合笔记(1) struts2,hibernate,spring整合笔记(2) 配好struts和hibernate就要开始spring了 老规矩,还是 ...

  5. struts2,hibernate,spring整合笔记(2)

    上一话struts2,hibernate,spring整合笔记(1) 接下来继续 配置完struts之后就要开始hibernate的配置 hibernate的环境并不依赖web开发环境,在我第一次配置 ...

  6. Spring(四):Spring整合Hibernate,之后整合Struts2

    背景: 上一篇文章<Spring(三):Spring整合Hibernate>已经介绍使用spring-framework-4.3.8.RELEASE与hibernate-release-5 ...

  7. SSH(Spring Struts2 Hibernate)框架整合(注解版)

    案例描述:使用SSH整合框架实现部门的添加功能 工程: Maven 数据库:Oracle 框架:Spring Struts2  Hibernate 案例架构: 1.依赖jar包 pom.xml < ...

  8. SSH(Spring Struts2 Hibernate)框架整合(xml版)

    案例描述:使用SSH整合框架实现部门的添加功能 工程: Maven 数据库:Oracle 案例架构: 1.依赖jar包pom.xml <project xmlns="http://ma ...

  9. java框架之Spring(4)-Spring整合Hibernate和Struts2

    准备 导包 Struts2 导入 Struts2 zip 包解压目录下 'apps/struts-blank.war' 中所有 jar 包,如下: asm-3.3.jar asm-commons-3. ...

  10. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:SSH框架(Struts2+Spring+Hibernate)搭建整合详细步骤

    在实际项目的开发中,为了充分利用各个框架的优点,通常都会把 Spring 与其他框架整合在一起使用. 整合就是将不同的框架放在一个项目中,共同使用它们的技术,发挥它们的优点,并形成互补.一般而言,在进 ...

随机推荐

  1. c++class 内存布局

    #include <iostream> using namespace std; class base1 { int a; double b; char c; }; int main() ...

  2. Maven-01 安装maven

      maven是apache的一个开源项目.用于管理java项目的构建等.

  3. 利用Bootstrap框架制作查询页面的界面

    UI设计实战篇——利用Bootstrap框架制作查询页面的界面   Bootstrap框架是一个前端UI设计的框架,它提供了统一的UI界面,简化了设计界面UI的过程(缺点是定制了界面,调整的余地不是太 ...

  4. 用django搭建一个简易blog系统(翻译)(四)

    12. Create the templates 你需要做三件事来去掉TemplateDoesNotExist错误 第一件,创建下面目录 * netmag/netmag/templates * net ...

  5. 运用Unity结合PolicyInjection实现拦截器

    运用Unity结合PolicyInjection实现拦截器[结合操作日志实例] 上一篇文章我们通过Unity自身Unity.InterceptionExtension.IInterceptionBeh ...

  6. cocos2dx android lua文件设置问题

    cocos2d-x版本: cocos2d-2.1rc0-x-2.1.2 通常我们在文件AppDelegate.cpp的applicationDidFinishLaunching()函数中设置lua代码 ...

  7. (转)JS中公共/私有变量和方法

    私有变量 在对象内部使用'var'关键字来声明,而且它只能被私有函数和特权方法访问. 私有函数 在对象的构造函数里声明(或者是通过var functionName=function(){...}来定义 ...

  8. Eclipse RCP /Plugin移除Search对话框

    RCP:如何移除Search对话框中不需要的项 2013-08-18 22:31 by Binhua Liu, 231 阅读, 0 评论, 收藏, 编辑 前言 很久没写文章了,准备写一系列关于Ecli ...

  9. - 高级篇:二,IL设置静态属性,字段和类型转换

    - 高级篇:二,IL设置静态属性,字段和类型转换 静态属性赋值 先来看 Reflector反射出的IL源码(感谢Moen的提示),这次用 Release模式编译,去掉那些无用的辅助指令 public ...

  10. 原生Js封装的弹出框-弹出窗口-页面居中-多状态可选

    原生Js封装的弹出框-弹出窗口-页面居中-多状态可选   实现了一下功能: 1.title可自定义 可拖拽 2.width height可以自定义 3.背景遮罩和透明度可以自定义 4.可以自己编辑弹出 ...