• SSHE框架整合(增删改查)


    1.前期准备:jar包(c3p0、jdbc ,各个框架)

    web.xml文件:spring的   转码的,和Struts2的过滤器

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>L1219_SSHE</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      
      <!-- spring -->
     <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:app.xml</param-value>
        
      </context-param>
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      
      <!-- 转码 -->
        <filter>
    	  <filter-name>encodingFilter</filter-name>
    	  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    		  <init-param>
    			   <param-name>encoding</param-name>
    			   <param-value>UTF-8</param-value>
    		  </init-param>
    		  <init-param>
    			   <param-name>forceEncoding</param-name>
    			   <param-value>true</param-value>
    		  </init-param>
    	 </filter>
      <filter-mapping>
    		  <filter-name>encodingFilter</filter-name>
    		  <url-pattern>/*</url-pattern>
     	</filter-mapping>
      
      
      <!-- 过滤器 -->
      <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
      </filter>
      
      <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
     
    </web-app>
    

      Hibernate.cfg.xml的文件,并生成实体类的映射文件,

    注意:现在用spring来生成映射文件。

    spring的app.xml的配置,用的连接池来连接数据库

    Hibernate的各种配置,sessionFactory声明当前session,通过sessionFactory.getCurrentSession()来获取,(DAO层)

    声明事务

    然后见如下图所示的各种包,在包中实现各接口以及实现类(impl)实现类中主要是个方法(增删改查)

    Struts2的配置,主要是Action的方法的配置,(增删改查的action)

    注意:name是页面发送的get或post请求的URL地址,class是spring中对应的id, method是Action类中的方法名

     

     

     DAO层接口

    package com.hanqi.dao;
    
    import java.util.List;
    import java.util.Map;
    
    import com.hanqi.entity.Student;
    
    public interface StudentDAO {
    	
    	//获取数据列表
    	List<Student> find(int page , int rows,String sort,Map<String,String> where);
    //获取数据条数
    	int getTotal(Map<String,String> where);
    	
    	void insert(Student stu);//添加
    	void update(Student stu);//修改
    	void delete(String sno);//删除
    }
    

      DAO的实现类

    package com.hanqi.dao.impl;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    
    import org.hibernate.Query;
    import org.hibernate.SessionFactory;
    
    import com.hanqi.dao.StudentDAO;
    import com.hanqi.entity.Student;
    
    public class StudentDAOImpl implements StudentDAO {
    
    	private SessionFactory  sessionFactory;
    	
    	public void setSessionFactory(SessionFactory sessionFactory) {
    		this.sessionFactory = sessionFactory;
    	}
    
    	@Override
    	public List<Student> find(int page, int rows, String sort, Map<String, String> where) {
    		
    		//创建基础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 = sessionFactory.getCurrentSession().createQuery(sql);
    			if(sname != null  && !sname.equals(""))
    			{
    				q.setString("sname",sname);
    			}
    			if(sclass != null && !sclass.equals(""))
    			{
    				q.setString("sclass",sclass);
    			}
    			
    				 List<Student> rtn = new ArrayList<Student>(); 
    				 rtn = q.setMaxResults(rows)//每页行数
    					 .setFirstResult((page-1)*rows).list();//起始页码
    		
    		return rtn;
    	}
    
    	@Override
    	public int getTotal(Map<String, String> where) {
    		int rtn= 0;
    		
    		//创建基础HQL语句
    				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";//and前面加空格
    				}
    				
    				
    				String sclass =  where.get("sclass_s");
    				if(sclass != null && !sclass.equals(""))
    				{
    					sql += " and sclass = :sclass";
    				}
    				//得到HQL
    				Query q = sessionFactory.getCurrentSession().createQuery(sql);
    				if(sname != null  && !sname.equals(""))
    				{
    					q.setString("sname",sname);
    				}
    				if(sclass != null && !sclass.equals(""))
    				{
    					q.setString("sclass",sclass);
    				}
    		//获取Query对对象,定义集合并实例化
    		List<Object> lo = q.list();
    		
    		if(lo != null && lo.size() > 0)
    		{
    			rtn = Integer.parseInt(lo.get(0).toString());//转换成int并赋值
    		}
    		
    		
    		
    		return rtn;
    	}
    
    	
    
    	//添加数据
    	@Override
    	public void insert(Student stu)
    	{
    		
    		
    		 sessionFactory.getCurrentSession().save(stu);
    		
    		
    		
    		 
    		
    	}
    	
    	
    	//修改数据
    	@Override
    		public void update(Student stu)
    		{
    			
    			
    			 sessionFactory.getCurrentSession().update(stu);
    			
    			
    			
    			 
    		}
    		
    	//删除
    	@Override
    		public void delete(String sno)
    		{
    			
    			//Student st = (Student)se.get(Student.class, sno);
    			
    			//se.delete(st);
    			
    			//HQL方式执行删除
    			 sessionFactory.getCurrentSession().createQuery("delete  Student where sno =?")
    			 .setString(0, sno)
    			 .executeUpdate();
    			
    			
    			
    		}
    	
    	
    }
    

      service接口

    package com.hanqi.service;
    
    import java.util.List;
    import java.util.Map;
    
    import com.hanqi.entity.Student;
    
    public interface StudentService {
    	List<Student>getList(int page , int rows,String sort,Map<String,String> where);
    	int getTotal(Map<String,String> where);
    	String getPageJSON(int page, int rows,String sort,Map<String,String> where);
    
    //	void insert(Student stu);
    //	void update(Student stu);
    //	void delete(String sno);
    	
    	//service的添加
    	void addStudent(Student stu);
    	//修改
    	void editStudent(Student stu);
    	
    	//删除
    	void deleteStudent(String sno);
    }
    

      service的实现类

    package com.hanqi.service.impl;
    
    import java.util.List;
    import java.util.Map;
    
    import com.alibaba.fastjson.JSONObject;
    import com.hanqi.dao.StudentDAO;
    import com.hanqi.entity.Student;
    import com.hanqi.service.PageJSON;
    import com.hanqi.service.StudentService;
    
    public class StudentServiceImpl implements StudentService {
    
    	private StudentDAO studentDAO;
    	
    	
    	public void setStudentDAO(StudentDAO studentDAO) {
    		this.studentDAO = studentDAO;
    	}
    
    
    	@Override
    	public List<Student> getList(int page, int rows, String sort, Map<String, String> where) {
    		// TODO 自动生成的方法存根
    		return studentDAO.find(page, rows, sort, where);
    	}
    
    
    	@Override
    	public int getTotal(Map<String, String> where) {
    		// TODO 自动生成的方法存根
    		return studentDAO.getTotal(where);
    	}
    
    
    	@Override
    	public String getPageJSON(int page, int rows, String sort, Map<String, String> where) {
    
    		PageJSON<Student> pj = new PageJSON<Student>();//引用泛型类
    		String rtn = JSONObject.toJSONString(pj);   //"{total:0,rows:[]}";//空的JSON对象
    		
    		int total =  studentDAO.getTotal(where);//符合查询条件的总条数
    		if(total>0)
    		{
    			List<Student> ls =  studentDAO.find(page, rows,sort,where);
    			
    			//String ls_json = JSONArray.toJSONString(ls);//转成JSON格式
    			
    			pj.setTotal(total);
    			pj.setRows(ls);
    			
    			rtn = JSONObject.toJSONString(pj);
    			
    			//转义字符,转成JSON读取的格式
    			//rtn =  "{"total":"+total+","rows":"+ls_json+"}" ;
    
    			
    		}
    		
    		return rtn;
    	}
    
    
    //	@Override
    //	public void insert(Student stu) {
    //		// TODO 自动生成的方法存根
    //		studentDAO.insert(stu);
    //	}
    //
    //
    //	@Override
    //	public void update(Student stu) {
    //		// TODO 自动生成的方法存根
    //		studentDAO.update(stu);
    //		
    //	}
    //
    //
    //	@Override
    //	public void delete(String sno) {
    //		// TODO 自动生成的方法存根
    //		studentDAO.delete(sno);
    //	}
    
    
    	@Override
    	public void addStudent(Student stu) {
    		// TODO 自动生成的方法存根
    		studentDAO.insert(stu);
    	}
    
    
    	@Override
    	public void editStudent(Student stu) {
    		// TODO 自动生成的方法存根
    		studentDAO.update(stu);
    		
    	}
    
    
    	@Override
    	public void deleteStudent(String sno) {
    		// TODO 自动生成的方法存根
    		studentDAO.delete(sno);
    	}
    
    
    	
    
    }
    

      Action

    package com.hanqi.action;
    
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.HashMap;
    import java.util.Map;
    
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.struts2.ServletActionContext;
    
    import com.hanqi.entity.Student;
    import com.hanqi.service.StudentService;
    
    public class StudentAction {
    	
    	private StudentService studentService;
    	
    	HttpServletResponse response = ServletActionContext.getResponse();
    	
    	public void setStudentService(StudentService studentService) {
    		this.studentService = studentService;
    	}
    
    
    	//接受参数
    	private int page;
    	private int rows;
    	private String sort;
    	private String order;
    	
    	private String sname_s;
    	private String sclass_s;
    	
    	//添加的参数
    	private String sno ;
    	private String sname ;
    	private String ssex;
    	private String sbirthday;
    	private String sclass;
    	
    
    	//接受参数表示添加或修改
    	private String type ;
    	
    	
    
    	public String getType() {
    		return type;
    	}
    
    
    	public void setType(String type) {
    		this.type = type;
    	}
    
    
    	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 getSbirthday() {
    		return sbirthday;
    	}
    
    
    	public void setSbirthday(String sbirthday) {
    		this.sbirthday = sbirthday;
    	}
    
    
    	public String getSclass() {
    		return sclass;
    	}
    
    
    	public void setSclass(String sclass) {
    		this.sclass = sclass;
    	}
    
    
    	public StudentService getStudentService() {
    		return studentService;
    	}
    
    
    	public int getPage() {
    		return page;
    	}
    
    
    	public void setPage(int page) {
    		this.page = page;
    	}
    
    	public int getRows() {
    		return rows;
    	}
    
    	public void setRows(int rows) {
    		this.rows = rows;
    	}
    
    
    	public String getSort() {
    		return sort;
    	}
    
    	public void setSort(String sort) {
    		this.sort = sort;
    	}
    	public String getOrder() {
    		return order;
    	}
    	public void setOrder(String order) {
    		this.order = order;
    	}
    
    	public String getSname_s() {
    		return sname_s;
    	}
    
    	public void setSname_s(String sname_s) {
    		this.sname_s = sname_s;
    	}
    
    	public String getSclass_s() {
    		return sclass_s;
    	}
    
    
    	public void setSclass_s(String sclass_s) {
    		this.sclass_s = sclass_s;
    	}
    
    
    	
    	
    	@Override
    	public String toString() {
    		return "StudentAction [page=" + page + ", rows=" + rows + ", sort=" + sort + ", order=" + order + ", sname_s="
    				+ sname_s + ", sclass_s=" + sclass_s + "]";
    	}
    
    
    	//返回数据列表
    	public void getStudentList()
    	{
    		System.out.println("this="+this);
    		
    		//调用serIve
    		try
    		{
    		//查询参数
    				
    				if(sname_s != null)
    				{
    				sname_s  = new String(sname_s.getBytes("ISO-8859-1"),"UTF-8");
    				}
    				
    				
    				
    				if(sclass_s != null)
    				{
    				sclass_s  = new String(sclass_s.getBytes("ISO-8859-1"),"UTF-8");
    				}
    				System.out.println("sname_s="+sname_s+"sclass_s="+sclass_s);
    				
    				//对条件进行打包
    				Map<String,String> where = new HashMap<String,String>();
    				
    				where.put("sname_s", sname_s);
    				where.put("sclass_s", sclass_s);
    				
    				//对分页情况的判断
    				
    				
    				//组合排序语句
    				String  ls = "";
    					if(sort != null && order != null)
    					{
    						ls= sort + " " + order;//注意加空格
    					}
    					//System.out.println("ls="+ls);
    					String json =  studentService.getPageJSON(page, rows,ls,where);
    				
    					System.out.println("json="+json);
    					
    					//返回数据
    					
    					HttpServletResponse response = ServletActionContext.getResponse();
    					
    					response.setCharacterEncoding("UTF-8");
    					response.setContentType("text/json");
    					
    					
    					response.getWriter().println(json);
    					
    		
    		}
    		catch(Exception e)
    		{
    			e.printStackTrace();
    		}
    	}
    
    	
    	//添加
    	public void getSave()
    	{
    		HttpServletResponse response = ServletActionContext.getResponse();
    		String msg = "{'success':true,'message':'保存成功'}";
    		if(sno != null && type != null)
    		{
    			try
    			{
    				Student stu = new Student();
    				stu.setSno(sno);
    				stu.setSclass(sclass);
    				stu.setSname(sname);
    				stu.setSsex(ssex);
    				if(sbirthday !=null && !sbirthday.trim().equals(""))
    				{
    					SimpleDateFormat  sdf = new SimpleDateFormat("yyyy-MM-dd");
    					stu.setSbirthday(sdf.parse(sbirthday));
    				}
    				if(type.equals("add"))//根据type判断按钮调用方法
    				{
    					studentService.addStudent(stu);
    				}
    				else
    				{
    					studentService.editStudent(stu);
    				}
    			}
    			catch(Exception e)
    			{
    				 msg = "{'success':false,'message':'访问失败'}";
    			}
    			
    			
    			try {
    				response.getWriter().print(msg);
    				
    			} catch (IOException e) {
    				// TODO 自动生成的 catch 块
    				e.printStackTrace();
    			}
    		}
    		else
    		{
    			
    			 msg = "{'success':false,'message':'访问异常'}";
    			try {
    				response.getWriter().print(msg);
    				
    			} catch (IOException e) {
    				// TODO 自动生成的 catch 块
    				e.printStackTrace();
    			}
    		}
    
    	}
    	
    	
    	
    }
    

     删除的action

    package com.hanqi.action;
    
    import java.io.IOException;
    
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.struts2.ServletActionContext;
    
    import com.hanqi.service.StudentService;
    
    public class DeleteStudentAction {
    	
    	private StudentService studentService;
    	
    	HttpServletResponse response = ServletActionContext.getResponse();
    	
    	public void setStudentService(StudentService studentService) {
    		this.studentService = studentService;
    	}
    	
    	//接受删除的参数
    		private String snos;
    		
    		
    		public String getSnos() {
    			return snos;
    		}
    
    
    		public void setSnos(String snos) {
    			this.snos = snos;
    		}
    
    		
    		//删除
    		public void getDelete()
    		{
    			String msg = "{'success':true,'message':'删除成功'}";
    			if(snos != null )
    			{
    				System.out.println("snos=="+snos);
    				try
    				{
    					String [] sno = snos.split(",");//分割
    					for(String s : sno)
    					{
    						studentService.deleteStudent(s);
    					}
    					
    				}
    				catch(Exception e)
    				{
    					 msg = "{'success':false,'message':'访问异常'}";
    				}
    				
    				
    				
    			}
    			else
    			{
    				
    				 msg = "{'success':false,'message':'删除失败'}";
    				 
    			}
    			try {
    				response.getWriter().print(msg);
    				
    			} catch (IOException e) {
    				// TODO 自动生成的 catch 块
    				e.printStackTrace();
    			}
    		}
    
    }
    

      页面显示层

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <!-- 顺序不可以乱 -->
    <!-- 1.jQuery的js包 -->
    <script type="text/javascript" src="jquery-easyui-1.4.4/jquery.min.js"></script>
    <!-- 2.css资源 -->
    <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">
    <!-- 4.easyui的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(){
    	
    	$("#hh").datagrid({
    		
    		url:'studentAction.action',//Struts.xml的name
    	//冻结列
    	frozenColumns:[[
    	                {field:'id',checkbox:true},//复选框
    	                {field:'sno',title:'学号',100}  
    	                ]],
    	                
    	              //定义列  列配置对象
    	        	    columns:[[    
    
    	        	        {field:'sname',title:'姓名',200,align:'center'},    
    	        	        {field:'ssex',title:'性别',200,align:'center',
    	        	        	formatter: function(value,row,index){
    	        	        		if(value == '男'||value == 'f')
    	        	        			{
    	        	        				return '男';
    	        	        			}
    	        	        		else
    	        	        			{
    	        	        				return '女';
    	        	        			}
    	        	        	},
    	        	        	styler:function(value,row,index){
    	        	        		if(value=='男'|| value=='f')
    	        	        			{
    	        	        				return 'background-color:#ccccff;color:red;';
    
    	        	        			}
    	        	        	}
    	        	        },
    	        	        
    	        	        
    	        	        {field:'sbirthday',title:'生日',200,align:'right',
    	        	        	formatter:function(value, row, index){
    	        	        		 if(value && value !="")
    	     		      			{
    	     		      				return getDate(value);
    	     		      			}
    	     		      		else
    	     		      			{
    	     		      				return '无';
    	     		      			}
    
    
    	  		        	  }
    	        	        
    	        	        },
    	        	       
    	        	        {field:'sclass',title:'班级',200,align:'center'}
    	        	        	
    	        	        
    	        	        
    	        	    ]] ,
    	        	    fitColumns:true,       //列自适应宽度,不能和冻结列同时设置为true
    	        	    striped:true,           //斑马线
    	        	    idField:'sno',     //主键列
    	        	    rownumbers:true,        //显示行号
    	        	    singleSelect:false,      //是否单选
    	        	    pagination:true,         //分页栏
    	        	    pageList:[8,16,24,32] ,  //每页行数选择列表
    	        		pageSize:8   ,            //初始每页行数
    	        		remoteSort:true  ,      //是否服务器端排序,设成false才能客户端排序
    	        		sortName:'sno',//排序字段,基于服务器端排序
    	        		sortOrder:'desc',//排序顺序
    	        		//顶部工具栏
    	        		toolbar:[
    	        		         
    							{
    	 							iconCls:'icon-search',
    								 text:'查询',
    								 
    								 handler:function(){
    									 //序列化查询表单
    									var f = $("#form2").serialize();
    									//alert(f);
    									 $("#hh").datagrid({url:"studentAction.action?"+f})},//把查询条件带给servlet
    								 
    							},
    	        		         
    	        		         {
    	        		        	 iconCls:'icon-add',
    	        		        	 text:'添加',
    	        		        	 handler:function(){
    	        		        		 type ="add";
    	        		        		//$("#sno").textbox({readonly:false});
    	        		        		 //清除表单旧数据
    	        		        		 $("#form1").form("reset");//重置表单数据
    	        		        		 
    	        		        		 
    	        		        		 $("#saveStu").dialog('open');
    	        		        		 }
    	        		         },
    	        		         {
    	        		        	 iconCls:'icon-edit',
    	        		        	 text:'修改',
    	        		        	 handler:function(){
    	        		        		 type ="edit";
    	        		        		 //判断是否选中一条数据
    	        		        		 var data = $("#hh").datagrid('getSelected');
    	        		        		 if(data)
    	        		        			 {
    	        		        			 	//alert(date);
    	        		        			 	//设置主键字段只读
    	        		        			 	$("#sno").textbox({readonly:true});
    	        		        			 	$("#form1").form("reset");//重置表单数据
    	        		        			 	$('#form1').form('load',{sno:data.sno,
    	        		        			 		sname:data.sname,
    	        		        			 		ssex:data.ssex,
    	        		        			 		sbirthday:getDate(data.sbirthday),
    	        		        			 		sclass:data.sclass
    	        		        			 	});
    	        		        			 	//$("#form1").form()
    	        		        			 	
    	        		        			 	 $("#saveStu").dialog({title:'修改学生'}).dialog('open');
    	        		        			 	
    	        		        			 }
    	        		        		 else
    	        		        			 {
    	        		        			 	$.messager.show({
    	        		        			 		title:'提示',
    	        		        			 		msg:'请选中一条记录'
    	        		        			 	});
    	        		        			 }
    	        		        		
    	        		         	}
    	        		         },
    	        		         {
    	        		        	 iconCls:'icon-delete',
    	        		        	 text:'删除',
    	        		        	 handler:function(){
    	        		        //getSelections返回所有被选中的行,当没有记录被选中的时候将返回一个空数组。
    	        		        		var data = $("#hh").datagrid('getSelections');
    	        		        		if(data.length > 0)
    	        		        			{
    	        		        				//alert("条数="+data.length);
    	        		        				$.messager.confirm(
    	        		        					'确认','您确认要删除吗?',function(r){
    	        		        						if(r)
    	        		        							{
    	        		        							 //alert("fff="+data[0].sno);
    	        		        							 //使用数组保存选中数据的记录主键
    	        		        							 var snos=[];
    	        		        							 for(var i = 0 ; i<data.length;i++)
    	        		        								 {
    	        		        								 	snos [i]= data[i].sno;
    	        		        								 }
    	        		        							 //把要删除的主键传递给Servlet
    	        		        							$.get("deleteStudent.action?snos="+snos,
    	        		        								
    	        		        								function(rtn){
    	        		        								 
    	        		        								 //alert(rtn);
    	        		        								 //解析
    	        		        								 var ms = eval("("+ rtn +")");
    	        		        								 if(ms.success)
    	        		        									 {
    	        		        									 //若删除成功刷新页面
    	        		        									 $("#hh").datagrid('reload');
    	        		        									 }
    	        		        								 $.messager.show({
    	        		        									 title:'提示',
    	        		        									 msg:ms.message
    	        		        								 });
    	        		        							 });
    	        		        							}
    	        		        					}
    	        		        				);
    	        		        			}
    	        		        		else
    	        		        			{
    	        		        				$.messager.show({
    	        		        					title:'提示',
    	        		        					msg:'请选择一条要删除的数据'
    	        		        				})
    	        		        			}
    	        		         	}
    	        		         }
    	        	 ],
    	});
    })
    
    
    
    
    </script>
    <div id="search" class="easyui-panel" title="查询条件" style="height:80px;100%"
    data-options="{
    iconCls:'icon-search',
    collapsible:true}">
    	<form id="form2"><br>
    		<table  border="0"  style="margin-left:30px">
    			<tr>
    				<td>姓名:<input class="easyui-textbox" id="sname_s" name="sname_s"></td>
    				<td>班级:<input class="easyui-textbox" id="sclass_s" name="sclass_s"></td>
    			</tr>
    		</table>
    		
    		
    	</form>
    </div>
    
    <table id="hh"></table>
    
    <div class="easyui-dialog" id="saveStu" style="400px; height:300px"
    title="添加学生"
    data-options="{
    closed:true,
    modal:true,
    buttons:[{
    text:'保存',
    iconCls:'icon-save',
    	handler:function(){
    		$('#form1').form('submit',{
    		
    			url:'saveStudent.action?type='+ type,  //
    			onSubmit:function(){
    				var isValid = $(this).form('validate');
    				if(!isValid)
    				{
    					$.messager.show({
    						
    						title:'消息',
    						msg:'数据验证未通过'
    					});
    				}
    				return isValid;	// 返回false终止表单提交
    			},
    			success:function(data){
    				var msg = eval('('+ data +')');//eval是js的方法
    			if(!msg.success)
    				{
    					alert(msg.message);
    				}
    				else
    				{
    				 $('#hh').datagrid('load');
    					$.messager.show({
    						
    						title:'消息',
    						msg:'数据验证通过,保存成功'
    					});
    					$('#saveStu').dialog('close');
    				}
    			
    			}
    		});
    	}
    		
    			
    	
    },
    
    {
    text:'取消',
    iconCls:'icon-cancel',
    	handler:function(){$('#saveStu').dialog('close')},
    }]
    }">
    	<form action="" id="form1" method="post"><br><br>
    		<table border="0" width=100%>
    			<tr>
    				<td align="right" width="30%">学号:</td>
    				<td>
    					<input class="easyui-textbox" id="sno" name="sno" 
    					data-options="required:true,validType:'length[3,8]'">
    				</td>
    			</tr>
    			<tr>	
    				<td align="right" width="30%">姓名:</td>
    				<td>
    					<input class="easyui-textbox" id="sname" name="sname" 
    					data-options="required:true,validType:'length[2,3]'">
    				</td>
    			</tr>
    			<tr>	
    				<td align="right" width="30%">性别:</td>
    				<td>
    					<input type="radio" name="ssex" value="男" checked>男
    					<input type="radio"  name="ssex" value="女">女
    					
    				</td>
    			</tr>
    
    			<tr>
    				<td align="right" >生日:</td>
    				<td>
    					<input class="easyui-datebox" id="sbirthday" name="sbirthday" 
    					data-options="required:false,">
    				</td>
    			</tr>
    			
    			<tr>
    				<td align="right" >班级:</td>
    				<td>
    					<input class="easyui-textbox" id="sclass" name="sclass" 
    					data-options="required:true,validType:'length[5,5]'">
    				</td>
    			</tr>
    		</table>
    		
    	</form>
    
    </div>
    </body>
    </html>
    

      

  • 相关阅读:
    LinQ 语法基础
    JQuery 补充
    JQuery Ajax 获取数据
    JQuery Ajax
    jQuery 动画
    Python+Spark2.0+hadoop学习笔记——Python Spark MLlib Decision Tree MultiClassification多分类
    Python+Spark2.0+hadoop学习笔记——Python Spark MLlib Naive Bayes二分类
    Python+Spark2.0+hadoop学习笔记——Python Spark MLlib支持向量机二分类
    Python+Spark2.0+hadoop学习笔记——Python Spark MLlib逻辑斯蒂回归二分类
    Python+Spark2.0+hadoop学习笔记——Python Spark MLlib决策树二分类
  • 原文地址:https://www.cnblogs.com/liuyanzeng/p/6206332.html
Copyright © 2020-2023  润新知