1. 程式人生 > >jqueryeasyUI(0 建立CRUD應用)

jqueryeasyUI(0 建立CRUD應用)

easyUI是一套基於jquery的UI外掛,easyUI的目標就是幫主web開發者輕鬆點打造出豐富且美觀的UI介面,開發者不需要編寫複雜的js,也不需要對css樣式有深刻的瞭解,只需要連線一定的html標籤

優點

1 基於jquery使用者介面外掛的集合

2 為一些當前用於互動的JS應用提供必要的功能

3 easyUI支援兩種頁面渲染的方式 js方式 (如:$('#p').panel({...})) 和html標記方式(如:class="easyui-panel")

4 支援H5(通過data-options屬性)

5 開發產品時可節省時間和資源

6 簡單,簡單但很強大

7 支援擴充套件,可根據自己的需求擴充套件控制元件

8 目前的不足之處正在通過版本跌迭代完善

準備工作

準備資料庫(提供資料來源與儲存)

準備一個SSM專案(提供後臺訪問)

完成的功能: 使用easyUI實現crud操作

jsp頁面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>easyUI 建立 DataGrid 來顯示使用者資訊</title>
<!-- <link rel="stylesheet" type="text/css" href="css/easyui.css">
	<link rel="stylesheet" type="text/css" href="css/icon.css">
	<link rel="stylesheet" type="text/css" href="css/demo.css"> -->
	
		<link rel="stylesheet" type="text/css" href="http://www.jeasyui.net/Public/js/easyui/themes/default/easyui.css">
	<link rel="stylesheet" type="text/css" href="http://www.jeasyui.net/Public/js/easyui/themes/icon.css">
	<link rel="stylesheet" type="text/css" href="http://www.jeasyui.net/Public/js/easyui/demo/demo.css">
	<style type="text/css">
		#fm{
			margin:0;
			padding:10px 30px;
		}
		.ftitle{
			font-size:14px;
			font-weight:bold;
			color:#666;
			padding:5px 0;
			margin-bottom:10px;
			border-bottom:1px solid #ccc;
		}
		.fitem{
			margin-bottom:5px;
		}
		.fitem label{
			display:inline-block;
			width:80px;
		}
	</style>
</head>
<body>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.min.js"></script>
	<script type="text/javascript" src="http://www.jeasyui.net/Public/js/easyui/jquery.easyui.min.js"></script>
	
	<script type="text/javascript">
	var url;
	function newUser(){
		//開啟一個對話方塊
		$('#dlg').dialog('open').dialog('setTitle','New User');
		$('#fm').form('clear');
		url = 'http://127.0.0.1:8080/SPR/insert.do';
	}
	
	function editUser(){
		var row = $('#dg').datagrid('getSelected');
		if (row){
			$('#dlg').dialog('open').dialog('setTitle','Edit User');
			$('#fm').form('load',row);
			url = 'update.do?id='+row.id;
		}else{
			alert("請選擇一個使用者操作")
		}
	}
	function saveUser(){
		console.log(url)
		$('#fm').form('submit',{
			url: url,
			onSubmit: function(){
				return $(this).form('validate');
			},
			success: function(result){
				//var result = eval('('+result+')');
				//console.log(result)
				if (result=="success"){
					$('#dlg').dialog('close');		// close the dialog
					$('#dg').datagrid('reload');	// reload the user data
				} else {
					$.messager.show({
						title: 'Error',
						msg: "操作失敗"
					});
				}
			}
		});
	}
	function removeUser(){
		var row = $('#dg').datagrid('getSelected');
		if (row){
			$.messager.confirm('刪除確認','確定要刪除這個使用者嗎?',function(r){
				if (r){
					console.log("刪除中...");
					$.post('delete.do',{id:row.id},function(result){
						console.log(result+"ssss")
						if (result){
							$('#dg').datagrid('reload');	// reload the user data
						} else {
							$.messager.show({	// show error message
								title: 'Error',
								msg: "刪除失敗"
							});
						}
					},'json');
				}
			});
		}else{
			alert("請選擇一個使用者來操作")
		}
	}
	</script>
	
	
	<table id="dg" title="My Users" class="easyui-datagrid" style="width:550px;height:250px"
		url="http://127.0.0.1:8080/SPR/query.do"
		toolbar="#toolbar"
		rownumbers="true" fitColumns="true" singleSelect="true">
	<thead>
		<tr>
		<th field="id" width="50">id</th>
		<th field="sname" width="50">sname</th>
			<th field="name" width="50">name</th>
			
		</tr>
	</thead>
</table>
<div id="toolbar">
	<a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newUser()">New User</a>
	<a href="#" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="editUser()">Edit User</a>
	<a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="removeUser()">Remove User</a>
</div>




	<div id="dlg" class="easyui-dialog" style="width:400px;height:280px;padding:10px 20px"
		closed="true" buttons="#dlg-buttons">
	<div class="ftitle">Student</div>
	<form id="fm" method="post">
		
		<div class="fitem">
			<label>same:</label>
			<input name="sname" class="easyui-validatebox" required="true">
		</div>
		<div class="fitem">
			<label>name:</label>
			<input name="name">
		</div>
		
	</form>
</div>
<div id="dlg-buttons">
	<a href="#" class="easyui-linkbutton" iconCls="icon-ok" onclick="saveUser()">Save</a>
	<a href="#" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close')">Cancel</a>
</div>
</body>
</html>

controller 類

package com.penf.www.controller;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.penf.www.model.Student;
import com.penf.www.service.StudentService;
import com.penf.www.util.ResultSuccessInfo;

@Controller
public class StudentController {

	
	@Resource
	private StudentService stuService;
	
	
	@RequestMapping("query")
	public @ResponseBody 
	Object query(){
		//ResultSuccessInfo succinfo=new ResultSuccessInfo();
		
		//succinfo.setResult(stuService.queryAll());
		return stuService.queryAll();
	}
	
	
	@RequestMapping("insert")
	public @ResponseBody 
	Object insert(HttpServletRequest request){
		Student stu=new Student();
		String sname=request.getParameter("sname");
		String name=request.getParameter("name");
		if(name!=null || sname !=null){
			stu.setName(name);
			stu.setSname(sname);
//			System.out.println(stu);
			stuService.insert(stu);
			return "success";
		}
		
		
		return "error";
	}
	
	
	
	@RequestMapping("update")
	public @ResponseBody 
	Object update(HttpServletRequest request){
		Student stu=new Student();
		String id=request.getParameter("id");
		String sname=request.getParameter("sname");
		String name=request.getParameter("name");
		if(name!=null || sname !=null){
			stu.setName(name);
			stu.setSname(sname);
			stu.setId(Integer.parseInt(id));
//			System.out.println(stu);
			stuService.update(stu);
			return "success";
		}
		
		
		return "error";
	}
	
	@RequestMapping("delete")
	public @ResponseBody 
	Object delete(HttpServletRequest request){
	String id=request.getParameter("id");
	
		if(id!=null ){
		
			stuService.deleteById(Integer.parseInt(id));
			return true;
		}
		
		
		return false;
	}
}

這個例項是根據官i網中的頁面更改的(原網頁中是基於PHP的)

需要注意的是: 執行刪除操作的時候,使用的是$.post(url , {引數列表} , function(){} ),這個要求返回的是一個boolean型別,(字串是不行的),否則不會執行回撥函式,

效果

:

最終實現與官網上效果一樣的功能