一个关于jquery easyui crud demo 的一个例子
- - Web前端 - ITeye博客注:这个程序jsp的源代码在这个http://www.jeasyui.com/demo/main/index.php网址的basic crud里面下载它用的是html + php 我们今天要把他改成 Java后台 struts + hibernate + ibatis. 这里是jsp代码easyui.jsp.
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>Basic CRUD Application - jQuery EasyUI CRUD Demo</title> <link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/default/easyui.css"> <link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/icon.css"> <link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/demo/demo.css"> <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.min.js"></script> <script type="text/javascript" src="http://www.jeasyui.com/easyui/jquery.easyui.min.js"></script> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <h2> Basic CRUD Application </h2> <div class="demo-info" style="margin-bottom: 10px"> <div class="demo-tip icon-tip"> </div> <div> Click the buttons on datagrid toolbar to do crud actions. </div> </div> <table id="dg" title="My Users" class="easyui-datagrid" style="width: 700px; height: 250px" url="personOption!queryPersons.action" toolbar="#toolbar" pagination="true" rownumbers="true" fitColumns="true" singleSelect="true"> <thead> <tr> <th field="id" width="50"> id </th> <th field="xm" width="50"> xm </th> <th field="sfzh" width="50"> sfzh </th> </tr> </thead> </table> <div id="toolbar"> <a href="javascript:void(0)" class="easyui-linkbutton" onclick=newUser();>New User</a> <a href="javascript:void(0)" class="easyui-linkbutton" onclick=editUser();>Edit User</a> <a href="javascript:void(0)" class="easyui-linkbutton" onclick=destroyUser();>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"> User Information </div> <form id="fm" method="post" novalidate> <div class="fitem"> <label> id: </label> <input name="id" class="easyui-validatebox" required="true"> </div> <div class="fitem"> <label> xm: </label> <input name="xm" class="easyui-validatebox" required="true"> </div> <div class="fitem"> <label> sfzh: </label> <input name="sfzh"> </div> </form> </div> <div id="dlg-buttons"> <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-ok" onclick=saveUser();>Save</a> <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick=javascript:$('#dlg').dialog('close'); >Cancel</a> </div> <script type="text/javascript"> var url; function newUser() { $('#dlg').dialog('open').dialog('setTitle', 'New User'); $('#fm').form('clear'); url = 'personOption!savePerson.action'; } function editUser() { var row = $('#dg').datagrid('getSelected'); if (row) { $('#dlg').dialog('open').dialog('setTitle', 'Edit User'); $('#fm').form('load', row); url = 'personOption!updatePerson.action'; } } function saveUser() { $('#fm').form('submit', { url : url, onSubmit : function() { return $(this).form('validate'); }, success : function(result) { var result = eval('(' + result + ')'); if (result.errorMsg) { $.messager.show( { title : 'Error', msg : result.errorMsg }); } else { //alert("aaa"); $('#dlg').dialog('close'); // close the dialog $('#dg').datagrid('reload'); // reload the user data } } }); } function destroyUser() { var row = $('#dg').datagrid('getSelected'); if (row) { $.messager.confirm('Confirm', 'Are you sure you want to destroy this user?', function(r) { if (r) { $.post('personOption!deletePerson.action', { id : row.id }, function(result) { if (result.success) { $('#dg').datagrid('reload'); // reload the user data } else { $.messager.show( { // show error message title : 'Error', msg : result.errorMsg }); } }, 'json'); } }); } } </script> <style type="text/css"> #fm { margin: 0; padding: 10px 30px; } .ftitle { font-size: 14px; font-weight: bold; padding: 5px 0; margin-bottom: 10px; border-bottom: 1px solid #ccc; } .fitem { margin-bottom: 5px; } .fitem label { display: inline-block; width: 80px; } </style> </body> </html>
import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import net.sf.json.JSONArray; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import org.springframework.stereotype.Component; import com.opensymphony.xwork2.ActionContext; @Component("personOption") @SuppressWarnings("serial") public class PersonOptionAction extends BaseAction { public IPersonLogic personLogic; private String id; private String xm; private String sfzh; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getXm() { return xm; } public void setXm(String xm) { this.xm = xm; } public String getSfzh() { return sfzh; } public void setSfzh(String sfzh) { this.sfzh = sfzh; } public int queryPersonsCount(){ return personLogic.queryPerson().size(); } /** * 查询所有人员信息 * @return */ public String queryPersons() throws IOException{ ActionContext.getContext().getActionInvocation().getProxy().setExecuteResult(false); List<Person> list = personLogic.queryPerson(); this.getRequest().setAttribute("list", list); JSONArray jsonArray = JSONArray.fromObject(list); int count = this.queryPersonsCount(); String str = "{\"total\":"+count+",\"rows\":"+jsonArray+"}"; List list2 = new ArrayList(); list2.add(jsonArray); Map<String,Object> map = new HashMap(); map.put("total", count); map.put("rows", jsonArray); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.writeValue(this.getResponse().getOutputStream(), map ); return "queryPersons"; } /** * 删除指定人员信息 * @return */ public String deletePerson() throws Exception { ObjectMapper objectMapper = new ObjectMapper(); Map<String ,Object> map = new HashMap<String,Object>(); boolean b = personLogic.deletePerson(id); if(b == true){ map.put("success", true); objectMapper.writeValue(this.getResponse().getOutputStream(), map); }else{ map.put("success", false); } return "deletePerson"; } /** * 保存人员信息 * @param person * @return */ public String savePerson() throws Exception{ //System.out.println(id + xm + sfzh); Person person = new Person(); person.setId(id); Date rksj = new Date(); person.setRksj(rksj); person.setSfzh(sfzh); person.setXm(xm); personLogic.savePerson(person); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.writeValue(this.getResponse().getOutputStream(), person); return "savePerson"; } /** * 更新人员信息 * @param person * @return */ public String updatePerson() throws Exception { System.out.println("id=" + id + "xm="+xm + "sfzh="+sfzh); Person person = new Person(); person.setId(id); Date rksj = new Date(); person.setRksj(rksj); person.setSfzh(sfzh); person.setXm(xm); List<Person> list = personLogic.queryPerson(); for(Person person2 : list){ if(person2.getId().equals(person.getId())){ personLogic.updatePerson(person); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.writeValue(this.getResponse().getOutputStream(), person); } } personLogic.queryPerson(); return "updatePerson"; } public String updatePersonjsp(){ System.out.println(id); List<Person> list = personLogic.queryPerson(); for(Person person : list){ if(person.getId().equals(id)){ this.getRequest().setAttribute("person", person); } } return "updatePersonjsp"; } public IPersonLogic getPersonLogic() { return personLogic; } @Resource(name="personLogic") public void setPersonLogic(IPersonLogic personLogic) { this.personLogic = personLogic; } }
点击我
. 像上面这样把JavaSript代码和HTML代码混杂在一起的做法同样也非常不妥,因为它并没有将网页内容和行为分离,所以才有JQuery选择器的学习.点击我
. //给class为demo的元素添加行为.