• 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:'学生编号',100}]],
    	    
    	    //列的定义
    	    columns:[[    
    	        {field:'sname',title:'学生名',100},    
    	        {field:'ssex',title:'性别',100},    
    	        {field:'sclass',title:'班级',100,align:'right'},
    	        {field:'sbirthday',title:'生日',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="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>
    

      

  • 相关阅读:
    客车网上订票系统项目--会员管理、前端注册页面
    客车网上订票系统项目--管理员管理、前端用户留言
    客车网上订票系统项目--新闻模块
    后端模块-管理员登录、显示留言列表
    前端模块--首页留言页编辑
    前端模块--登录注册界面编辑
    JVM深入理解(一) -JVM初识
    45:漏洞发现-API接口服务之漏洞探针类型利用修复
    42:漏洞发现-操作系统之漏洞探针类型利用修复
    linux系统安全-2
  • 原文地址:https://www.cnblogs.com/nicebaby/p/6192564.html
Copyright © 2020-2023  润新知