今天在使用Struts2的時候加載后台數JSOn格式的數據時候出現了老是加載不上的現象,代碼如下:
userGroup.js
Ext.onReady(function(){ var sm=new Ext.grid.CheckboxSelectionModel(); var cm=new Ext.grid.ColumnModel([ sm, {header:'用戶組編號',dataIndex:"id"}, {header:'用戶組名稱',dataIndex:'groupName'} ]) ; var record= new Ext.data.Record.create([ {name:'id',mapping:'id'}, {name:'groupName',mapping:'groupName'} ]); var proxy=new Ext.data.HttpProxy({url:'/MedicalGuidance/manager/getUserGroup_userAction.action'}); var reader =new Ext.data.JsonReader({ totalProperty:"totalProperty", root:"root" },record) ; var store=new Ext.data.Store({ proxy:proxy, reader:reader }) ; var grid =new Ext.grid.GridPanel({ title:"用戶組管理", autoHeight:true, cm:cm, sm:sm, store:store, renderTo:"render", bbar:new Ext.PagingToolbar({ store:store, pageSize:6, displayInfo:true, displayMsg:"本頁顯示第{0}條數據導第{1}條的記錄,一共{2}條", emptyMsg:"沒有記錄" }), tbar:[{ id:'addUserGroupForm', text:'新建', iconCls:'add', handler:function(){ add_btn(); } },'-',{ id:'editUserGroupForm', text:'修改', iconCls:'edit', handler:function(){ edit_btn(); } },'-',{ id:'刪除', iconCls:'remove', text:'刪除', handler:function(){ handlerDelete(); } }] }); store.load({params:{start:0,limit:6}}); var userGroupForm=new Ext.form.FormPanel({ labelWidth:75, frame:true, bodyStyle:'padding:5px 5px 0', waitMsgTarget:true, defaultType:'textfield', items:[{ name:'id', hidden:true },{ fieldLabel:'組名稱', name:'userGroupName', emptyText:'組名稱' }] }); var add_btn = function() { addFormWin(); }; var newFormWin ; var addFormWin =function(){ newFormWin=new Ext.Window({ layout:'fit', height:200, width:300, closeAction:'hide', plain:true, frame:true, title:'添加用戶組', items:userGroupForm, buttons:[{ text:'保存', disabled:false, handler:addBtnsHandler },{ text:'取消', handler:function(){ userGroupForm.form.reset(); newFormWin.hide(); } }] }); newFormWin.show() } //添加按鈕 function addBtnsHandler() { if (userGroupForm.form.isValid()) { userGroupForm.form.submit( { url : '/MedicalGuidance/manager/addUserGroup_userAction.action', waitMsg : '正在保存數據,稍后...', success : function(form, action) { Ext.Msg.alert('保存成功', '添加用戶信息成功!'); userGroupForm.form.reset();//清空表單 grid.getStore().reload(); newFormWin.hide(); }, failure : function(form, action) { Ext.Msg.alert('保存失敗', '添加人員信息失敗!'); } }); }else { Ext.Msg.alert('信息', '請填寫完成再提交!'); } } function edit_btn(){ var selectedKeys = grid.selModel.selections.keys;//returns array of selected rows ids only //判斷是否選中一行數據 沒有選中提示沒有選中,選中加載信息 if(selectedKeys.length != 1){ Ext.MessageBox.alert('提示','請選擇一條記錄!'); } //加載數據 else{ var EditUserWin = new Ext.Window({ title: '修改用戶組', //題頭 layout:'fit',//布局方式 width:400,//寬度 height:200,//高度 plain: true,//渲染 items:userGroupForm, //按鈕 buttons: [{ text:'保存', handler:function(){ updateHandler(EditUserWin); } },{ text: '取消', handler: function(){ EditUserWin.hide(); } }] }); EditUserWin.show(); loadUser(); } } //加載數據 function loadUser(){ var selectedKeys = grid.selModel.selections.keys;//returns array of selected rows ids only userGroupForm.getForm().load({ waitMsg : '正在加載數據請稍后',//提示信息 waitTitle : '提示',//標題 url : '/MedicalGuidance/manager/loadUserGroup_userAction.action', params:{id:selectedKeys}, method:'POST',//請求方式 success:function(form,action){ userGroupForm.getForm().setValues({ id:action.result.data.id, userGroupName:action.result.data.groupName }) }, failure:function(form,action){//加載失敗的處理函數 Ext.MessageBox.alert(Ext.encode(action)); } }); } //修改按鈕操作 function updateHandler(w){ if (userGroupForm.form.isValid()) { userGroupForm.form.submit({ clientValidation:true,//進行客戶端驗證 waitMsg : '正在提交數據請稍后...',//提示信息 waitTitle : '提示',//標題 url : '/MedicalGuidance/manager/modifyUserGroup_userAction.action',//請求的url地址 method:'POST',//請求方式 success:function(form,action){//加載成功的處理函數 w.hide(); userGroupForm.form.reset();//清空表單 grid.getStore().reload(); Ext.Msg.alert('提示','修改信息成功'); }, failure:function(form,action){//加載失敗的處理函數 Ext.Msg.alert('提示','ID不能修改'); Ext.Msg.alert('提示','修改信息失敗'); } }); }else { Ext.Msg.alert('信息', '請填寫完成再提交!'); } } //修改操作結束========================================================================================================================== //刪除操作開始========================================================================================================================== function handlerDelete(){ var selectedKeys = grid.selModel.selections.keys; //returns array of selected rows ids only if(selectedKeys.length > 0) { Ext.MessageBox.confirm('提示','您確實要刪除選定的記錄嗎?', deleteRecord); }else{ Ext.MessageBox.alert('提示','請至少選擇一條記錄!'); }//end } //刪除記錄 function deleteRecord(btn){ if(btn=='yes'){ //var selectedRows = grid.selModel.selections.items;//returns record objects for selected rows (all info for row) 獲得整行數據 var selectedKeys = grid.selModel.selections.keys;//選中的行的值id Ext.MessageBox.show({ msg: '正在請求數據, 請稍侯', progressText: '正在請求數據', width:300, wait:true, waitConfig: {interval:200} }); Ext.Ajax.request({ url: '/MedicalGuidance/manager/deleteUserGroup_userAction.action', //url to server side script method: 'POST', params:{ids:selectedKeys},//the unique id(s) failure:function(){ Ext.MessageBox.hide(); Ext.MessageBox.alert("警告","出現異常錯誤!請聯系管理員!"); }, success:function(){ Ext.MessageBox.hide(); Ext.MessageBox.alert("成功","刪除成功!"); grid.getStore().removeAt(1); } })// end Ajax request } } //刪除操作結束 })
userGroupAction
package com.medvision.action.manager; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import org.springframework.stereotype.Component; import com.medvision.bean.Usergroup; import com.medvision.dao.base.QueryResult; import com.medvision.po.UserGroupPo; import com.medvision.service.manager.usergroup.UserGroupService; import com.opensymphony.xwork2.ActionSupport; @Component("userAction") public class UserAction extends ActionSupport{ private Integer[] ids ; private Integer start ; private Integer limit ; private String userGroupName ; private boolean success ; private Integer id ; private UserGroupPo data ; public UserGroupPo getData() { return data; } public void setData(UserGroupPo data) { this.data = data; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public boolean isSuccess() { return success; } public void setSuccess(boolean success) { this.success = success; } public String getUserGroupName() { return userGroupName; } public void setUserGroupName(String userGroupName) { this.userGroupName = userGroupName; } private Integer totalProperty ; private List root =new ArrayList(); @Resource private UserGroupService ugs ; public Integer getTotalProperty() { return totalProperty; } public void setTotalProperty(Integer totalProperty) { this.totalProperty = totalProperty; } public List getRoot() { return root; } public void setRoot(List root) { this.root = root; } public Integer[] getIds() { return ids; } public void setIds(Integer[] ids) { this.ids = ids; } public Integer getStart() { return start; } public void setStart(Integer start) { this.start = start; } public Integer getLimit() { return limit; } public void setLimit(Integer limit) { this.limit = limit; } /** * 獲取用戶組管理界面 * @return * @throws Exception */ public String getUserGroupManagerUI() throws Exception { // TODO Auto-generated method stub return "userGroupUI"; } public String getUserGroup()throws Exception{ this.setSuccess(false); QueryResult<Usergroup> qr=ugs.getUserGroup(this.getStart(),this.getLimit()); this.totalProperty=qr.getTotal(); List<Usergroup> userGroup=qr.getItems(); Iterator it=userGroup.iterator(); while(it.hasNext()){ Usergroup ug=(Usergroup)it.next(); UserGroupPo ugp=new UserGroupPo(); ugp.setGroupName(ug.getGroupname()); ugp.setId(ug.getId()); root.add(ugp); } this.setSuccess(true); return "userGroups"; } public String addUserGroup() throws Exception{ this.setSuccess(false); try{ UserGroupPo ugp=new UserGroupPo(); ugp.setGroupName(this.getUserGroupName()); success=ugs.addUserGroup(ugp); }catch(Exception e){ e.printStackTrace(); } return "addGroupResult" ; } public String deleteUserGroup() throws Exception{ success=ugs.deleteUserGroupByIds(this.getIds()); return "delteResult" ; } public String modifyUserGroup() throws Exception{ success=ugs.modifyUserGruop(this.getId(),this.getUserGroupName()); System.out.println(this.getId()); System.out.println(this.getUserGroupName()); return "modifyUserGruopResult" ; } public String loadUserGroup() throws Exception{ UserGroupPo ugp=ugs.getUserGroupById(this.getId()); if(ugp ==null){ this.success=false ; }else{ this.setUserGroupName(ugp.getGroupName()); this.setId(ugp.getId()); data=ugp; System.out.println(data.getGroupName()); this.setUserGroupName(ugp.getGroupName()); this.setId(ugp.getId()); this.success=true ; } return "loadUserGroup"; } public String getUserManagerUI() throws Exception { // TODO Auto-generated method stub return "userManagerUI"; } }