Struts2绑定Jquery EasyUI

介绍:

       jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。对于一些不喜欢做页面的程序猿来说这是个很好的绑定数据的插件。jQuery EasyUI为我们提供了大多数UI控件的使用,如:accordion,combobox,menu,dialog,tabs,tree,validatebox,window等等 。 jQuery EasyUI绑定数据类型是JSON类型。

       1、   导入相应的jar包(非常重要,不要导入错了,我开始就是导入错了害得我整了一天)。

struts2 jar包

如果要是使用struts2-core-2.16.jar的话需要依赖的包有 json-lib2.1.jar、json-plugin-0.33.jar、ezmorph-1.0.3.jar、commons-beanutils-1.7.0.jar或1.8        这几个包的版本号必须是这样的,否则出错(  org.apache.catalina.core.StandardWrapperValve invoke

严重: Servlet.service() for servlet [default] in context with path [/TransactionSystem] threw exception [Filter execution threw an exception] with root         cause)

另外导入需要.commons-httpclient.jar  以及SSH相关jar包。

2、struts.xml文件配置:使用jsonplugin将属性转换成json对象,extends="json-default"result type要为json 
root 是只返回该内容,resultObj与action中的属性名字一样,即要返回给页面的值

 <constant name="struts.i18n.encoding" value="GBK" />
    <package name="admin" namespace="/admin" extends="json-default" >
          <action name="index">
             <result>index.jsp</result>
          </action>
       <action name="*-*" class="TransactionSystem.action.{1}Action" method="{2}">
       		<result type="json" >
       		<param name="root">resultObj</param>
       		</result>
       </action>
    </package> 
3、*.jsp代码

<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>交易码列表</title>
    
	<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">
	-->
<script type="text/javascript" src="easyUI/jquery-1.6.min.js"></script>
<script type="text/javascript" src="easyUI/jquery.easyui.min.js"></script>
<link rel="stylesheet" href="easyUI/themes/default/easyui.css" type="text/css"></link>
  <link rel="stylesheet" href="easyUI/themes/icon.css" type="text/css"></link>
	<script>
		$('#tt').datagrid({
				url: 'admin/TransCode-list',
				title: 'DataGrid - ContextMenu',
				width: 700,
				height: 'auto',
				fitColumns: true,
				columns:[[
					{field:'id',title:'ID',width:80},
					{field:'tranNo',title:'交易码',width:120},
					{field:'tranName',title:'交易名称',width:80,align:'right'},
					{field:'cr_Num',title:'CR号',width:80,align:'right'}
				]],
				onHeaderContextMenu: function(e, field){
					e.preventDefault();
					if (!$('#tmenu').length){
						createColumnMenu();
					}
					$('#tmenu').menu('show', {
						left:e.pageX,
						top:e.pageY
					});
				}
			});
		});				
	</script>
  </head>
  <body >	
	<table id="tt"></table>
  </body>
</html>
4、java代码

public class TransCodeAction extends ActionSupport {
		private List<TransCode> transCodes;
		private TransCodeManager transCodeManager;
		private int id;
		private JSONObject resultObj;// 要返回到页面的JSON数据,一定要有getter,setter方法。

		public JSONObject getResultObj() {
			return resultObj;
		}

		public void setResultObj(JSONObject resultObj) {
			this.resultObj = resultObj;
		}

		public String list() {
			HttpServletResponse resp = ServletActionContext.getResponse();
			resp.setContentType("application/json");
			transCodes = transCodeManager.getAll(); // 通过*DAO中Hibernate读取数据
			ArrayList al = new ArrayList();
			for (TransCode tc : transCodes) {
				Map<String, Object> m = new HashMap<String, Object>();
				m.put("id", tc.getId());
				m.put("tranName", tc.getTranName());
				m.put("tranNo", tc.getTranNo());
				m.put("cr_Num", tc.getCr_Num());
				al.add(m);
			}
			Map<String, Object> json = new HashMap<String, Object>();
			json.put("total", transCodes.size());// total键 存放总记录数,必须的json.put("rows", transCodes.size());transCodes.size()返回的数据条数
			json.put("rows", al);// rows键 存放每页记录 list,必须是“rows”关键词
			resultObj = JSONObject.fromObject(json);// 格式化result一定要是JSONObject
			
			return SUCCESS;
		}

		public List<TransCode> getTransCodes() {
			return transCodes;
		}
		public void setTransCodes(List<TransCode> transCodes) {
			this.transCodes = transCodes;
		}
		public TransCodeManager getTransCodeManager() {
			return transCodeManager;
		}
		@Resource
		public void setTransCodeManager(TransCodeManager transCodeManager) {
			this.transCodeManager = transCodeManager;
		}
	}


// 这里边的json数据格式为:{total=4, rows=[{id=3, tranNo=401563,tranName=现金圈存, cr_Num=1117}, {id=4, tranNo=401563, tranName=现金圈存, cr_Num=1117}]}

//resultObj数据格式为:{"total":2,"rows":[{"id":2,"tranNo":401563,"tranName":"现金圈存","cr_Num":1117},{"id":3,"tranNo":401563,"tranName":"现金圈存","cr_Num":1117}]}
// 返回到页面绑定到Jquery EasyUI中datagrid的数据一定要是上面的resultObj数据格式


5、效果图


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值