`
IT阿狸
  • 浏览: 68097 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

SSH2 + JQuery EasyUI 做的一个对书籍增删改查的例子

阅读更多

一、建Web Project,导入SSH2框架

 

二、在WebRoot下建给文件夹script,里面放入如下文件:

1.themes(可以给ui换主题)

2.jquery-1.8.0.min.js(可能会报错,不用管)

3.jquery.easyui.min.js

4.easyui-lang-zh_CN.js(国际化文件)

5.book.js(脚本)

 

三、entity和entity的映射文件

Book:

package org.ajax.entity;

import java.sql.Timestamp;


/**
 * Book entity. @author MyEclipse Persistence Tools
 */

public class Book  implements java.io.Serializable {


    // Fields    

     private Integer id;
     private String isbn;
     private String title;
     private Double price;
     private Timestamp pubdate;
     private String intro;


    // Constructors

    /** default constructor */
    public Book() {
    }

	/** minimal constructor */
    public Book(Double price, Timestamp pubdate) {
        this.price = price;
        this.pubdate = pubdate;
    }
    
    /** full constructor */
    public Book(String isbn, String title, Double price, Timestamp pubdate, String intro) {
        this.isbn = isbn;
        this.title = title;
        this.price = price;
        this.pubdate = pubdate;
        this.intro = intro;
    }

   
    // Property accessors

    public Integer getId() {
        return this.id;
    }
    
    public void setId(Integer id) {
        this.id = id;
    }

    public String getIsbn() {
        return this.isbn;
    }
    
    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }

    public String getTitle() {
        return this.title;
    }
    
    public void setTitle(String title) {
        this.title = title;
    }

    public Double getPrice() {
        return this.price;
    }
    
    public void setPrice(Double price) {
        this.price = price;
    }

    public Timestamp getPubdate() {
        return this.pubdate;
    }
    
    public void setPubdate(Timestamp pubdate) {
        this.pubdate = pubdate;
    }

    public String getIntro() {
        return this.intro;
    }
    
    public void setIntro(String intro) {
        this.intro = intro;
    }

}

 

Book.hbm.xml:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="org.ajax.entity.Book" table="BOOK" schema="y2">
        <id name="id" type="java.lang.Integer">
            <column name="ID" length="200" />
            <generator class="sequence">
            	<param name="sequence">book_seq</param>
            </generator>
        </id>
        <property name="isbn" type="java.lang.String">
            <column name="ISBN" length="100" />
        </property>
        <property name="title" type="java.lang.String">
            <column name="TITLE" length="2048" />
        </property>
        <property name="price" type="java.lang.Double">
            <column name="PRICE" precision="126" scale="0" not-null="true" />
        </property>
        <property name="pubdate" type="java.sql.Timestamp">
            <column name="PUBDATE" length="11" not-null="true" />
        </property>
        <property name="intro" type="java.lang.String">
            <column name="INTRO" length="4000" />
        </property>
    </class>
</hibernate-mapping>

 

 

四、dao和daoImpl

package org.ajax.dao;

import java.util.List;
import org.ajax.entity.Book;

/**
 * 接口
 * 
 * @author miao
 * 
 */
public interface BookDao {

	/**
	 * 查询所有书籍
	 * 
	 * @return
	 */
	public List<Book> find();

	/**
	 * 添加书籍
	 * 
	 * @param book
	 * @return
	 */
	public int add(Book book);

	/**
	 * 删除书籍
	 * 
	 * @param id
	 * @return
	 */
	public int delete(int id);

	/**
	 * 获得一书籍记录
	 * 
	 * @param id
	 * @return
	 */
	public Book findById(int id);

	/**
	 * 更新书籍
	 * 
	 * @param book
	 * @return
	 */
	public int update(Book book);

	/**
	 * 统计书籍共多少本
	 * 
	 * @return
	 */
	public long findTotal();

	/**
	 * 查询一页的数据
	 * 
	 * @param begin 从哪条开始0
	 * @param end 得到多少条
	 * @param sort 排序字段
	 * @param order 升序或降序 desc/asc
	 */
	public List<Book> findPageBooks(int begin, int end, String sort, String order);

}

 

package org.ajax.dao.impl;

import java.sql.SQLException;
import java.util.List;
import org.ajax.dao.BookDao;
import org.ajax.entity.Book;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

/**
 * 接口实现类
 * 
 * @author miao
 * 
 */
public class BookDaoImpl extends HibernateDaoSupport implements BookDao {

	@SuppressWarnings("unchecked")
	public List<Book> find() {
		DetachedCriteria criteria = DetachedCriteria.forClass(Book.class);
		criteria.addOrder(Order.desc("pubdate"));
		return super.getHibernateTemplate().findByCriteria(criteria);
	}

	public int add(Book book) {
		return (Integer) super.getHibernateTemplate().save(book);
	}

	public int delete(int id) {
		return super.getHibernateTemplate().bulkUpdate("delete from Book b where b.id=?", id);
	}

	public Book findById(int id) {
		return (Book) super.getHibernateTemplate().get(Book.class, id);
	}

	public int update(Book book) {
		return super.getHibernateTemplate().bulkUpdate(
				"update Book b set b.isbn = ?, b.title = ?, b.price = ?,"
						+ "b.pubdate = ?, b.intro = ? where b.id = ?",
				new Object[] { book.getIsbn(), book.getTitle(), book.getPrice(), book.getPubdate(),
						book.getIntro(), book.getId() });
	}

	public long findTotal() {
		return (Long) super.getHibernateTemplate().execute(new HibernateCallback() {
			public Object doInHibernate(Session session) throws HibernateException, SQLException {
				return (Long) session.createQuery("select count(*) from Book").uniqueResult();
			}
		});
	}

	/**
	 * 查询一页的数据
	 * 
	 * @param begin 从哪条开始0
	 * @param end 得到多少条
	 * @param sort 排序字段
	 * @param order 升序或降序 desc/asc
	 */
	@SuppressWarnings("unchecked")
	public List<Book> findPageBooks(final int begin, final int end, final String sort,
			final String order) {
		// 当要用到原生的Hibernate的Session的时候,这种最灵活,可以使用Query和Criteria,不用着急管理会话和事
		return super.getHibernateTemplate().executeFind(new HibernateCallback() {
			public Object doInHibernate(Session session) throws HibernateException, SQLException {
				Criteria criteria = session.createCriteria(Book.class);
				if ("desc".equals(order)) {
					criteria.addOrder(Order.desc(sort));
				} else {
					criteria.addOrder(Order.asc(sort));
				}
				criteria.setFirstResult(begin).setMaxResults(end);
				return criteria.list();
			}
		});
	}

}

 

 

五、biz和bizImpl

package org.ajax.biz;

import java.util.List;

import org.ajax.entity.Book;

/**
 * 业务类
 * 
 * @author miao
 * 
 */
public interface BookBiz {

	/**
	 * 查询所有书籍
	 * 
	 * @return
	 */
	public List<Book> findAllBooks();

	/**
	 * 添加书籍
	 * 
	 * @param book
	 * @return
	 */
	public int addBook(Book book);

	/**
	 * 删除书籍
	 * 
	 * @param id
	 * @return
	 */
	public int deleteBook(int id);

	/**
	 * 获得一书籍记录
	 * 
	 * @param id
	 * @return
	 */
	public Book findBook(int id);

	/**
	 * 更新书籍
	 * 
	 * @param book
	 * @return
	 */
	public int updateBook(Book book);

	/**
	 * 统计书籍共多少本
	 * 
	 * @return
	 */
	public long findTotal();

	/**
	 * 查询一页的数据
	 * 
	 * @param page 当前页号
	 * @param size 页面大小
	 * @param sort 排序字段
	 * @param order 升序或降序 desc/asc
	 */
	public List<Book> findPageBooks(int page, int size, String sort, String order);

}

 

package org.ajax.biz.impl;

import java.util.List;
import org.ajax.biz.BookBiz;
import org.ajax.dao.BookDao;
import org.ajax.entity.Book;

/**
 * 业务实现类
 * 
 * @author miao
 * 
 */
public class BookBizImpl implements BookBiz {

	private BookDao bookDao;

	public void setBookDao(BookDao bookDao) {
		this.bookDao = bookDao;
	}

	public List<Book> findAllBooks() {
		return bookDao.find();
	}

	public int addBook(Book book) {
		return bookDao.add(book);
	}

	public int deleteBook(int id) {
		return bookDao.delete(id);
	}

	public Book findBook(int id) {
		return bookDao.findById(id);
	}

	public int updateBook(Book book) {
		return bookDao.update(book);
	}

	public long findTotal() {
		return bookDao.findTotal();
	}

	/**
	 * 查询一页的数据
	 * 
	 * @param page 当前页号
	 * @param size 页面大小
	 * @param sort 排序字段
	 * @param order 升序或降序 desc/asc
	 */
	public List<Book> findPageBooks(int page, int size, String sort, String order) {
		int begin = (page - 1) * size;
		return bookDao.findPageBooks(begin, size, sort, order);
	}

}

 

 

六、action

package org.ajax.action;

import java.util.HashMap;
import java.util.Map;
import org.ajax.biz.BookBiz;
import org.ajax.entity.Book;
import com.opensymphony.xwork2.ActionSupport;
/**
 * Action
 * @author miao
 *
 */
public class BookAction extends ActionSupport {

	// 调用业务类
	private BookBiz bookBiz;

	private Book book; // 一本书
	private int page;// 当前第几页
	private Map<String, Object> data = new HashMap<String, Object>();// 封装数据
	private int size;// 页面大小,页面是rows
	private String order;// 排序方向,desc和asc
	private String sort;// 排序属性名,如price

	// 标识操作是否成功
	private boolean operateSuccess;

	// set注入
	public void setBookBiz(BookBiz bookBiz) {
		this.bookBiz = bookBiz;
	}

	/*
	 * 给easyui排序用的,表示排序方法
	 */
	public void setOrder(String order) {
		this.order = order;
	}

	/*
	 * 给easyui排序用的,表示排序字段
	 */
	public void setSort(String sort) {
		this.sort = sort;
	}

	/*
	 * 给easyui指定页面大小用的,如果要指定页面大小可变
	 * 页面是rows
	 */
	public void setRows(int size) {
		this.size = size;
	}

	/*
	 * 给easyui分页用的
	 */
	public void setPage(int page) {
		this.page = page;
	}

	// getter/setter方法

	public Book getBook() {
		return book;
	}

	public int getPage() {
		return page;
	}

	public Map<String, Object> getData() {
		return data;
	}

	public void setData(Map<String, Object> data) {
		this.data = data;
	}

	public int getRows() {
		return size;
	}

	public String getOrder() {
		return order;
	}

	public String getSort() {
		return sort;
	}

	public void setBook(Book book) {
		this.book = book;
	}

	public boolean isOperateSuccess() {
		return operateSuccess;
	}

	public void setOperateSuccess(boolean operateSuccess) {
		this.operateSuccess = operateSuccess;
	}

	/**
	 * 查询某一页的书籍
	 */
	public String list() {
		data.clear();// 清除
		if (sort == null) {
			sort = "title";// 默认按书名排序
		}
		if (order == null) {
			order = "asc";// 默认按升序排序
		}
		data.put("rows", bookBiz.findPageBooks(page, size, sort, order));// 得到某一页的数据
		data.put("total", bookBiz.findTotal());// 得到所有的记录数
		return SUCCESS;
	}

	/**
	 * 添加书籍
	 */
	public String addBook() {
		operateSuccess = (bookBiz.addBook(book) > 0);
		return SUCCESS;
	}

	/**
	 * 更新书籍
	 */
	public String updateBook() {
		operateSuccess = (bookBiz.updateBook(book) > 0);
		return SUCCESS;
	}

	/**
	 * 删除书籍
	 */
	public String deleteBook() {
		operateSuccess = (bookBiz.deleteBook(book.getId()) > 0);
		return SUCCESS;
	}

	/**
	 * 查询一本书
	 */
	public String findBook() {
		book = bookBiz.findBook(book.getId());
		return SUCCESS;
	}

}

 

 

七、spring配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
	http://www.springframework.org/schema/tx
	http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
	http://www.springframework.org/schema/aop
	http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">

	<!-- 数据源 -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver">
		</property>
		<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl">
		</property>
		<property name="username" value="y2"></property>
		<property name="password" value="bdqn"></property>
	</bean>

	<!-- 会话工厂 -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.Oracle10gDialect
				</prop>
				<prop key="show_sql">true</prop>
				<prop key="format_sql">true</prop>
			</props>
		</property>
		<property name="mappingResources">
			<list>
				<value>org/ajax/entity/Book.hbm.xml</value>
			</list>
		</property>
	</bean>

	<!-- dao -->
	<bean id="bookDao" class="org.ajax.dao.impl.BookDaoImpl">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>

	<!-- biz -->
	<bean id="bookBiz" class="org.ajax.biz.impl.BookBizImpl">
		<property name="bookDao" ref="bookDao" />
	</bean>

	<!-- action -->
	<bean id="bookAction" class="org.ajax.action.BookAction">
		<property name="bookBiz" ref="bookBiz" />
	</bean>

	<!-- 配置事务 -->
	<bean id="txManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
	<!-- 定义事务通知 -->
	<tx:advice id="txAdvice" transaction-manager="txManager">
		<tx:attributes>
			<tx:method name="add*" propagation="REQUIRED" />
			<tx:method name="update*" propagation="REQUIRED" />
			<tx:method name="delete*" propagation="REQUIRED" />
			<tx:method name="find*" propagation="SUPPORTS" read-only="true" />
		</tx:attributes>
	</tx:advice>
	<!-- 定义哪些方法可以使用这些规则 -->
	<aop:config>
		<aop:pointcut id="bizMethod" expression="execution(* org.ajax.biz.*.*(..))" />
		<!-- 将事务通知与应用规则的方法组合 -->
		<aop:advisor advice-ref="txAdvice" pointcut-ref="bizMethod" />
	</aop:config>

</beans>

 

 

八、struts配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>

	<!-- 由spring管理 -->
	<constant name="stuts.objectFactory" value="spring" />

	<!-- 打开开发模式 -->
	<constant name="struts.devMode" value="true" />

	<package name="book" extends="json-default" namespace="/">
		<!-- 显示所有的书籍 -->
		<action name="list" class="bookAction" method="list">
			<!-- 指定的属性作为根元素输出 -->
			<result type="json">
				<param name="root">data</param>
			</result>
		</action>

		<!-- 添加书籍 -->
		<action name="addBook" class="bookAction" method="addBook">
			<result type="json" />
		</action>
		
		<!-- 删除书籍 -->
		<action name="deleteBook" class="bookAction" method="deleteBook">
			<result type="json" />
		</action>
		
		<!-- 得到一本书 -->
		<action name="findBook" class="bookAction" method="findBook">
			<result type="json" />
		</action>
		
		<!-- 更新书籍 -->
		<action name="updateBook" class="bookAction" method="updateBook">
			<result type="json" />
		</action>

	</package>

</struts>    

 

 

九、页面,book.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":"
			+ request.getServerPort() + path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.ddd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<base href="<%=basePath%>" />
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

		<link rel="stylesheet" type="text/css" href="script/themes/default/easyui.css" />
		<link rel="stylesheet" type="text/css" href="script/themes/icon.css" />
		
		<script type="text/javascript" src="script/jquery-1.8.0.min.js"></script>
		<script type="text/javascript" src="script/jquery.easyui.min.js"></script>
		<script type="text/javascript" src="script/easyui-lang-zh_CN.js"></script>

		<link rel="stylesheet" href="style/book.css" type="text/css" />
		<script type="text/javascript" src="script/book.js"></script>
		
		<title>书籍操作</title>
	</head>

	<body>
		<div id="main">
			<table id="bookbody">
			</table>
		</div>
		<!-- 编辑数据的div,默认看不到 -->
		<div id="divEdit">
				<div id="tabEdit">
					<form id="frmEdit">
					<input type="hidden" id="id" name="book.id" />
					<dl>
						<dd>
							ISBN:
						</dd>
						<dd>
							<input type="text" size="15" id="isbn" name="book.isbn" />
						</dd>
					</dl>
					<dl>
						<dd>
							书名:
						</dd>
						<dd>
							<input type="text" size="40" id="title" name="book.title" />
						</dd>
					</dl>
					<dl>
						<dd>
							价格¥:
						</dd>
						<dd>
							<input type="text" size="10" id="price" name="book.price" />
						</dd>
					</dl>
					<dl>
						<dd>
							出版日期:
						</dd>
						<dd>
							<input type="text" style="width: 150px" id="pubdate" name="book.pubdate" />
						</dd>
					</dl>
					<dl>
						<dd>
							简介:
						</dd>
						<dd>
							<textarea cols="45" rows="3" id="intro" name="book.intro"></textarea>
						</dd>
					</dl>
					</form>
				</div>
		</div>
	</body>
</html>

 

 

十、脚本文件,book.js

//JQuery的入口
$(function() {
	listBook();
	// 日期加上日期控件
	$("#pubdate").datebox({
		required : true
	});
	// 给文本框加上验证器
	$("#isbn").validatebox({
		required : true
	});
	// 书名的验证
	$("#title").validatebox({
		required : true,
		missingMessage : '书名不能为空'
	});
	// 价格用货币验证框
	$("#price").numberbox({
		required : true,
		min : 5.5,
		max : 9999,
		precision : 2,
		missingMessage : '请输入价格'
	});
	// 简介加验证
	$("#intro").validatebox({
		required : true
	});
});

// 加载书籍列表
function listBook() {
	$("#bookbody").datagrid({
		width : 600,
		height : "auto",
		iconCls : 'icon-help', // 表格左上角的图标样式
		url : 'list.action', // 访问服务器的地址,要求返回JSON对象
		rownumbers : true, // 在最前面显示行号
		fitColumns : true, // 自动适应列宽
		pagination : true, // 在底部显示分页工具栏
		striped : true, // 隔行变色
		singleSelect : true, // 每次只选中一行
		loadMsg : '加载书籍列表ing……',
		pageSize : 5, // 指定每页的大小,服务器要加上page属性和total属性
		remoteSort : true, // 从服务器端排序,默认true
		pageList : [ 3, 5, 10 ], // 可以设置每页记录条数的列表,服务器要加上rows属性
		idField : 'id', // 主键属性

		toolbar : [ {// 工具栏
			text : '添加',
			iconCls : 'icon-add', // 图标
			handler : function() { // 处理函数
				addBook();
			}
		}, {
			text : '删除',
			iconCls : 'icon-cancel', // 图标
			handler : function() { // 处理函数
				deleteBook();
			}
		}, {
			text : '编辑',
			iconCls : 'icon-edit',// 图标
			handler : function() {// 处理函数
				editBook();
			}
		} ],

		columns : [ [ {
			field : 'isbn',
			title : 'ISBN',
			width : 70
		}, {
			field : 'title',
			title : '书籍名称',
			// 可以排序,但服务器也完成相应的代码,要加入sort和order属性
			sortable : true
		}, {
			field : 'price',
			title : '价格',
			align : 'right',
			width : 60,
			sortable : true,
			formatter : function(value) {
				return "$" + value;
			}
		}, {
			field : 'pubdate',
			title : '出版日期',
			sortable : true,
			formatter : function(value) {
				return value.substring(0, 10);
			}
		} ] ]
	});
}

// 显示编辑窗口
function showEditForm() {
	$("#tabEdit").dialog({
		modal : true,// 模式窗口
		title : '书籍操作',
		iconCls : 'icon-save',
		buttons : [ {
			text : '确认',
			handler : function() {
				// 进行表单字段验证,当全部字段都有效时返回true和validatebox一起使用
				if ($('#frmEdit').form('validate')) {
					// 提交到服务器并写入数据库
					dealSave();
					// 关闭窗口
					closeForm();
				} else {
					$.messager.alert('验证', '书籍信息有误或不完整', 'error');
				}
			}
		}, {
			text : '取消',
			handler : function() {
				closeForm();
			}
		} ]
	});
}

// 关闭窗口
function closeForm() {
	$("#frmEdit").form('clear');
	$('#tabEdit').dialog('close');
}

// 添加的函数
function addBook() {
	// 清空原有的数据
	$('#frmEdit').form('clear');
	// 显示添加对话框
	showEditForm();
}

// 编辑按钮的操作
function editBook() {
	var book = $('#bookbody').datagrid('getSelected');// 得到选中的一行数据
	// 如果没有选中记录
	if (book == null) {
		$.messager.alert('书籍', '请先选中要编辑的书籍', 'info');
		return;
	}
	$('#frmEdit').form('clear');
	// 填充数据
	$("#id").val(book.id);
	$("#isbn").val(book.isbn);
	$("#title").val(book.title);
	$("#price").numberbox("setValue", book.price);
	// 给默认值
	$("#pubdate").datebox("setValue", book.pubdate.substring(0, 10));
	$("#intro").val(book.intro);
	// 显示编辑页面
	showEditForm();
}

// 在增加和更新时点确定按钮的处理函数
function dealSave() {
	// 表单数据序列化成一个字符串用&拼接
	var params = $("#frmEdit").serialize();
	// 得到id的值,为空串表示添加
	if ($("#id").val() == "") {
		$.post("addBook.action", params, function(result) {
			if (result.operateSuccess) {
				$('#bookbody').datagrid('reload');// 重新加载
				$.messager.alert('添加', '添加成功', 'info');
			} else {
				$.messager.alert('添加', '添加失败', 'warning');
			}
		});
	} else {
		// 表示更新
		$.post("updateBook.action", params, function(result) {
			if (result.operateSuccess) {
				$('#bookbody').datagrid('reload');// 重新加载
				$.messager.alert('更新', '更新成功', 'info');
			} else {
				$.messager.alert('更新', '更新失败', 'warning');
			}
		});
	}
}

// 删除书籍
function deleteBook() {
	var book = $('#bookbody').datagrid('getSelected');// 得到选中的一行数据
	// 如果没有选中记录
	if (book == null) {
		$.messager.alert('删除', '请先选中要删除的书籍', 'info');
		return;
	}
	$.messager.confirm('确认', '真的要删除选中的记录吗?', function(r) {
		if (r) {
			var url = "deleteBook.action?book.id=" + book.id;
			// 试一下get方法(地址,回调函数)
			$.get(url, function(result) {
				if (result.operateSuccess) {
					$.messager.alert('删除', '选中的书籍成功删除!', 'info');
					// 重新加载
					$("#bookbody").datagrid('reload');
				} else {
					$.messager.alert('删除', '删除失败!', 'warning');
				}
			});
		}
	});
}

 

 

十一、css,book.css

#divEdit {
	display: none;
}

* {
	font: 12px Arial;
}

div#main {
	margin: 0px auto;
	width: 600px;
}


#tabEdit input[type="text"],#tabEdit textarea {
	border: solid #66ccff 1px;
}

#tabEdit dl {
	padding-right: 35px;
}	

 

 

十二、demo

 JQuery-EasyUI-Book.zip

分享到:
评论
1 楼 heaven910 2014-10-06  
您好,我下载了您的例子,为什么与数据库交互不了呢?

相关推荐

    SSH+Jquery easyUI后台管理系统

    SSH+jQuery EasyUI后台管理系统是一种基于Struts2(S)、Spring(S)和Hibernate(H)三大开源框架的Web应用程序开发模式,结合jQuery EasyUI前端框架,构建出高效、简洁且具有现代感的后台管理界面。这个系统设计的...

    基于SSH + jquery easyui 的一个通讯录Demo

    在这个基于SSH + jQuery EasyUI的通讯录Demo中,我们将深入探讨这两个技术如何协同工作,实现一个具有基本增删改查功能的通讯录应用。 **1. Struts2:MVC框架** Struts2作为MVC(Model-View-Controller)框架,负责...

    struts2+ajax+easyui+json+datagrid增删改查

    下面将详细解释这些技术及其在实现增删改查、分页和排序功能中的作用。 **Struts2** 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它简化了Java应用的开发,提供了处理HTTP请求、控制应用程序...

    基于ssh+mysql+easyui的酒店客房管理系统.zip

    基于ssh+mysql+easyui的酒店客房管理系统.zip基于ssh+mysql+easyui的酒店客房管理系统.zip基于ssh+mysql+easyui的酒店客房管理系统.zip基于ssh+mysql+easyui的酒店客房管理系统.zip基于ssh+mysql+easyui的酒店客房...

    easyui+ssh增删改查

    【标题】"easyui+ssh增删改查"是一个典型的Web开发教程,旨在帮助初学者理解和实践基于EasyUI和Spring Struts Hibernate(SSH)框架的数据管理功能。EasyUI是一个基于jQuery的前端用户界面库,而SSH是Java后端常用的...

    ERP Demo SSH+MySQL+easyUI

    ERP Demo SSH+MySQL+easyUI ERP Demo SSH+MySQL+easyUI ERP Demo SSH+MySQL+easyUI ERP Demo SSH+MySQL+easyUI

    基于SSH2+Maven+EasyUI+MySQL技术实战开发易买网电子商务交易平台4

    基于SSH2+Maven+EasyUI+MySQL技术实战开发易买网电子商务交易平台4

    Springmvc+MyBatis+JQueryEasyUI

    JQueryEasyUI是一个基于jQuery的UI库,它为开发人员提供了大量的UI组件,如表格、表单、按钮、对话框、菜单、树等,使得Web应用的界面开发更加高效。EasyUI的核心理念是简化HTML布局,通过CSS样式和JavaScript插件...

    springboot+mybatis+easyui增删改查分页Demo

    【标题】"springboot+mybatis+easyui增删改查分页Demo"是一个基于Spring Boot、MyBatis和EasyUI实现的Web应用程序示例,主要用于演示如何在这些技术栈中进行基本的数据操作,如添加(Add)、删除(Delete)、修改...

    maven+spring+springmvc+hiberante+easyui实现的增删改查

    在本项目中,我们主要探讨的是一个基于"Maven+Spring+SpringMVC+Hibernate+EasyUI"技术栈实现的典型企业级应用系统,主要用于完成基本的CRUD(增删改查)操作。以下是对这些技术及其在项目中的作用的详细说明: 1. ...

    jbpm4.4+ssh+oracle + jqueryeasyui请假审批系统

    该压缩包文件“jbpm4.4+ssh+oracle + jqueryeasyui请假审批系统”包含了一个基于特定技术栈的工作流管理应用,旨在实现一个完整的请假审批流程。这个系统利用了jbpm4.4(Java Business Process Management)作为工作...

    基于SSM+jQuery EasyUI开发的生产管理ERP系统源码+项目说明(高分毕设).zip

    【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业...基于SSM+jQuery EasyUI开发的生产管理ERP系统源码+项目说明(高分毕设).zip

    struts2+hibernate3+mysql+jqueryeasyui+myeclipse

    struts2+hibernate3+mysql+jqueryeasyui1.3+myeclipse8.0 实现了用户信息分页,增删改操作,内有sql语句,项目直接导入就行了,适合初学者练练手 欢迎继续修改

    ssm+jqueryeasyui案例

    jQuery EasyUI则是一个基于jQuery的UI库,提供了丰富的组件和易于使用的API,用于快速构建现代、响应式的Web应用界面。 在这个"ssm+jqueryeasyui案例"中,我们可以学习如何将这三者结合,构建出功能完善的Web应用。...

    SSH+Jquery-easyui-json数据实现增删改查,数据生成柱状图,饼状图,excel报表的导入导出

    项目使用SSH架构,界面纯粹使用Jquery-easyui,数据库使用oracle。这只是系统中一个很小的模块,适合初学者学习。传输数据的方式使用Ajax,json,数据动态生成饼状图,柱状图。实现了excel表的导入导出。希望给诸位...

    jquery easy ui+ssh 增删改查例子

    这里,我们深入探讨一下使用jQuery EasyUI与SSH框架进行数据操作(增删改查)的基础知识。 jQuery EasyUI是一个基于jQuery的前端框架,它提供了一系列轻量级、易于使用的组件,如表格、对话框、菜单等,用于构建富...

    spring3 mvc + mybatis + jquery easyui例子

    本项目实例——"spring3 mvc + mybatis + jquery easyui例子",就是这样一个典型的案例,它利用Spring3 MVC作为后端MVC框架,MyBatis作为持久层解决方案,jQuery EasyUI作为前端界面库,共同打造了一个基础的用户、...

    PHP+AJAX+MYSQL+JqueryeasyUI做的后台登陆系统

    **Jquery EasyUI**是一个基于jQuery的UI库,它提供了大量的预定义的组件和主题,如对话框、表格、表单、菜单等,简化了前端开发。在这个登录系统中,Jquery EasyUI可能被用来创建登录表单的样式和交互效果,如按钮...

    SSH2+Easyui的增删查改小例子(存BUG)

    数据库采用Oracle,开发工具为MyEclipse,本人是新手。按照源码里的BOOK表字段在Oracle中创建表后,是可以跑起来的。只不过,数据库交互中出现了问题,数据没有显示到JSP界面中,希望大神们可以帮忙一起看看问题所在...

Global site tag (gtag.js) - Google Analytics