实例内容:通过后台操作提示信息。 //工具栏上的一个按钮 { text : '审核全部通过', id : 'delGuestBtn', iconCls : 'addicon', minWidth : '50', handler : function() { Ext.Ajax.request({ url :'mgr/xjxl.htm?action=shenHeQuanBuTongGuoXueLiShuJv',//调用后台对于controller的shenHeQuanBuTongGuoXueLiShuJv'方法 success: function(response,options){Ext.MessageBox.alert('成功',Ext.decode(response.responseText).msg);//获得后台传来的提示 }, failure: function(response,options){ Ext.MessageBox.alert('失败',Ext.decode(response.responseText).msg);//获得后台传来的提示 }, params : {//参数列表 xxmc : Selectedyxmc, bkorzk : Selectedpycc }, waitMsg : '数据处理中...'//遮罩 }); }.createDelegate(this) // end // handler } 后台: public void shenHeQuanBuTongGuoXueLiShuJv(HttpServletRequest request, HttpServletResponse response) throws Exception { //注意编码格式,不然返回前台是乱码 request.setCharacterEncoding("UTF-8"); response.setContentType("text/json;charset=utf-8"); log.info("reach XjxlController shenHeQuanBuTongGuoXueLiShuJv"); String pycc = request.getParameter("bkorzk");//获得参数 String yxid = request.getParameter("xxmc"); //获得参数 List
dshxj; dshxj = businessService.findXueLiShuJvByYxmcAndPycc(yxid,pycc); System.out.println(dshxj.size()); if(true)response.getWriter().write("{success:true,msg:'操作成功,本次共操作了"+dshxj.size()+"条数据'}");//成功 else response.getWriter().write("{success:false,msg:'操作失败,本次共操作了"+dshxj.size()+"条数据'}");//失败 Extjs和Asp.NET后台的数据交互1 Ext.data.Connection应该说提供了最为简洁的与后台的异步调用功能 实例如下 首先是aspx页面内容(省略了head和对js文件引用的部分) view plaincopy to clipboardprint? 关于Extjs的内容写在jsdataConnection.js文件中 内容如下: view plaincopy to clipboardprint? Ext.onReady(function() { var form1 = new Ext.form.FormPanel({ width: 350, frame: true, renderTo: "form1", labelWidth: 80, title: "form1", bodyStyle: "padding:5px 5px 0", defaults: { width: 150, xtype: "textfield" }, items: [ { fieldLabel: "ID", id: "ID", anchor: "90%" }, { fieldLabel: "name", id: "name", anchor: "90%" } ], buttons: [ { text: "確定", handler: function() { doUpdate(); } } ] }); //新建连接 var conn = new Ext.data.Connection({ autoAbort: false, defaultHeaders: { referer: 'http://localhost:1068' //此处defaultHeaders可以不设置 }, disableCaching: false, extraParams: { params: 'Update' }, method: 'post', timeout: 300, url: 'Handler.ashx'//此处如不指定,则默认访问当前页面 }); /* 其中 ①autoAbort:该request是否会自动断开(默认值false)。 ②disableCaching:设置为true就会添加一个独一无二的cache-buster参数来获取请求(默认值为true)。 ③extraParams:这些属性在该Connection发起的每次请求中作为外部参数使用 ④timeout:连接的超时时间 ⑤method:请求时使用的默认的http方法。【post】【get】 ⑥url:请求的网页地址,关于url最好使用ashx页面文件, 如果用aspx的话要把所有的页面元素都清除干净,否则前台接收到的内容会有问题。 */ function doUpdate() { //在创建了conn之后,可以调用request()函数发送请求,处理返回的结果,如下面的代码所示。 conn.request({ success: function(response) { Ext.Msg.alert('info', response.responseText); //response.responseText为返回的信息 }, failure: function() { Ext.Msg.alert('warn', 'failure'); } }); } //success:成功后执行的方法(参数返回response) //failure:失败时执行的方法 }); Ext.onReady(function() { var form1 = new Ext.form.FormPanel({ width: 350, frame: true, renderTo: "form1", labelWidth: 80, title: "form1", bodyStyle: "padding:5px 5px 0", defaults: { width: 150, xtype: "textfield" }, items: [ { fieldLabel: "ID", id: "ID", anchor: "90%" }, { fieldLabel: "name", id: "name", anchor: "90%" } ], buttons: [ { text: "確定", handler: function() { doUpdate(); } } ] }); //新建连接 var conn = new Ext.data.Connection({ autoAbort: false, defaultHeaders: { referer: 'http://localhost:1068' //此处defaultHeaders可以不设置 }, disableCaching: false, extraParams: { params: 'Update' }, method: 'post', timeout: 300, url: 'Handler.ashx'//此处如不指定,则默认访问当前页面 }); /* 其中 ①autoAbort:该request是否会自动断开(默认值false)。 ②disableCaching:设置为true就会添加一个独一无二的cache-buster参数来获取请求(默认值为true)。 ③extraParams:这些属性在该Connection发起的每次请求中作为外部参数使用 ④timeout:连接的超时时间 ⑤method:请求时使用的默认的http方法。【post】【get】 ⑥url:请求的网页地址,关于url最好使用ashx页面文件, 如果用aspx的话要把所有的页面元素都清除干净,否则前台接收到的内容会有问题。 */ function doUpdate() { //在创建了conn之后,可以调用request()函数发送请求,处理返回的结果,如下面的代码所示。 conn.request({ success: function(response) { Ext.Msg.alert('info', response.responseText); //response.responseText为返回的信息 }, failure: function() { Ext.Msg.alert('warn', 'failure'); } }); } //success:成功后执行的方法(参数返回response) //failure:失败时执行的方法 }); 其中Handler.ashx的内容如下 (新建ashx文件,我对内容没有做任何改动,除了加上一句注释之外) view plaincopy to clipboardprint? <%@ WebHandler Language="C#" Class="Handler" %> using System; using System.Web; public class Handler : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; //返回字符串Hello World context.Response.Write("Hello World"); } public bool IsReusable { get { return false; } } } 先看页面中的写法: var frm; Ext.onReady(function(){ var form1 = new Ext.FormPanel({ frame : true, width : 300, id : "frm", layout : "form", title : "添加个人信息", labelWidth : 70, labelAlign : "left", renderTo : "form1", items : [{ xtype : "textfield", fieldLabel : "用户名", name : "username", allowBlank : false, blankText : "不能为空!请正确填写!", anchor : "90%" },{ xtype : "textfield", fieldLabel : "昵称", name : "smallname", anchor : "90%" },{ xtype : "datefield", fieldLabel : "注册日期", name : "regdate", anchor : "90%" }], buttons : [{ text : "提交", handler : submit },{ text : "加载", handler : load },{ text : "取消", handler : reset }] }) frm = Ext.getCmp("frm"); //这两句话的意思是:校验 Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = 'side'; }) /**submit**/ function submit() { if (!frm.getForm().isValid())return; frm.getForm().submit({ waitMsg : "正在提交数据……", waitTitle : "提示", url : "http://localhost:8080/ExtJsApp/formServlet", method : "post", success : function(form, action) { Ext.Msg.alert("提示","保存成功!"); }, failure : function(formm, action) { Ext.Msg.alert("提示","保存失败:" + action.result.errors.info); } }); } /**load**/ function load() { frm.getForm().load({ waitMsg : "正在加载数据……", waitTitle : "提示", url : "http://localhost:8080/ExtJsApp/formServlet", method : "get", success : function (form, action) { Ext.Msg.alert("提示","加载成功!"); } }) } /**reset**/ function reset() { frm.getForm().reset(); } 后台servlet: @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/json; charset=utf-8"); String username = request.getParameter("username"); String smallname = request.getParameter("smallname"); if (username.equalsIgnoreCase("admin") && smallname.equalsIgnoreCase("ad")) { response.getWriter().print("{success:true,errors:{}}"); } else { response.getWriter().print("{success:false,errors:{info:'出错了!'}}"); } }
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
: 1、表单动作是表单中数据的加载。要给表单中的字段设置值,可以通过调用字段的setValue方法,也可以直接在初始化字段的时候在配置参数中设置value属性值,另外还有一种方法是通过Ajax的方式从服务器端加载表单中各个字段的值。这种方式也就是我们这里要介绍的表单数据加载。 ExtJS的表单数据加载通过BasicForm的load方法来进行,表单数据加载动作由类Ext.form.Action.Load定义,执行数据加载动作会到服务器端加载数据,默认情况下服务器端需要返回一个包含success属性及data属性的JSON对象。 2、Ext.Ajax.request([Object options]) : Number 服务器的响应是异步的,因此需要在回调函数中处理服务器端返回的数据。回调函数可以定义在request方法调用的参数options中。另外,在request方法中可以定义Ajax请求的一些其它属性。参数options是一个对象,该对象包含了Ajax请求所需的各种参数及回调处理参数等。options中可以包含的各个属性及含义如下所示: url String 指定要请求的服务器端url,默认值为Ajax对象中配置的URL参数值。 params Object/String/Function 指定要传递的参数,可以是一个包含参数名称及值的对象,也可以是name=xx&birthday=1978-1-1类似的url编码字符串,或者是一个能返回上述两种内容的函数。 method String 指定发送Ajax请求使用的method,可以是GET或POST方式。默认情况下,如果请求中没有传递任何参数则使用GET,否则使用POST。 callback Function 指定Ajax请求的回调函数,该函数不管是调用成功或失败,都会执行。传递给回调函数的参数有三个,第一个 options表示执行request方法时的参数,第二个success表示请求是否成功,第三个参数response表示用来执行Ajax请求的 XMLHttpRequest 对象。关于XMLHttpRequest可以通过http://www.w3.org/TR/XMLHttpRequest/查询详细的信息。 success Function 指定当Ajax请求执行成功后执行的回调函数,传递给回调函数两个参数,第一个参数response表示执行Ajax请求的XMLHttpRequet对象,第二个参数表示执行request方法时的options对象。 failure Function 指定当请求出现错误时执行的回调函数,传递给回调函数两个参数,第一个参数response表示执行Ajax请求的XMLHttpRequet对象,第二个参数表示执行request方法时的options对象。 scope Object 指定回调函数的作用域,默认为浏览器window。 form Object/String 指定要提交的表单id或表单数据对象。 isUpload Boolean 指定要提交的表单是否是文件上传表单,默认情况下会自动检查。 headers Object 指定请求的Header信息。 xmlData Object 指定用于发送给服务器的xml文档,如果指定了该属性则其它地方设置的参数将无效。 jsonData Object/String 指定需要发送给服务器端的JSON数据。如果指定了该属性则其它的地方设置的要发送的参数值将无效。 disableCaching Boolean 是否禁止cache。 1. HttpServletRequest request = ServletActionContext.getRequest(); 2. String start = request.getParameter("start");//开始 3. String limit = request.getParameter("limit");//结束 4. int begin =0; 5. int end = 0; 6. if(start==null&&limit==null){ 7. begin=Integer.parseInt((String)request.getSession().getAttribute(start)); 8. end = Integer.parseInt((String)request.getSession().getAttribute(limit)); 9. }else { 10. begin=Integer.parseInt(start); 11. end=Integer.parseInt(limit); 12. } 13. List list = articelService.queryAll(begin,end); 14. JSONArray array1 = new JSONArray(); 15. // 用来格式化时间 16. SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-dd"); 17. for (int i = 0; i < list.size(); i++) { 18. JSONObject object = new JSONObject(); 19. Article model = (Article) list.get(i); 20. object.put("id", model.getId()); 21. object.put("title", model.getTilte()); 22. object.put("readycount", model.getReadycount()); 23. object.put("createtime", d.format(model.getCreatetime())); 24. // if(model.getAltertime().toString()!=null){ 25. object.put("createtime", d.format(model.getAltertime())); 26. // } 27. array1.add(object); 28. } 29. JSONObject object1 = new JSONObject(); 30. object1.put("model", array1); 31. 32. int num = articelService.count(0); 33. Integer number= num; 34. String s = number.toString(); 35. object1.put("totalProperty", s); 36. ServletActionContext.getRequest().setCharacterEncoding("UTF-8"); 37. ServletActionContext.getResponse().setCharacterEncoding("UTF-8"); 38. ServletActionContext.getResponse().getWriter().println(object1.toString()); 39. request.setAttribute("article", object1.toString());