LigerUI通过Struts2返回并显示
来源:互联网 发布:c语言 变量初始化顺序 编辑:程序博客网 时间:2024/06/05 21:08
项目需求:需要把数据显示到表格中。表格用的是LigerUI,底层用的是Dao层。
完成步骤:第一步:首先从底层开始写获取数据的方法:
- public List<NewsList> findAllNews() {
- //String sql="SELECT w2.n, w1.* FROM NewsList w1, (SELECT TOP "+pages*pageSize+" row_number() OVER (ORDER BY UpdateTime DESC, infoId DESC) n, infoId FROM NewsList) w2 WHERE w1.infoId = w2.infoId AND w2.n > "+(pages-1)*pageSize+" ORDER BY w2.n ASC";
- String sql="SELECT * from NewsList order by infoIndex desc";
- List<NewsList> nl=new ArrayList<NewsList>();
- JSONArray array=sqlHelper.query(sql);
- for (int i = 0; i < array.size(); i++) {
- JSONObject object=array.getJSONObject(i);
- NewsList newslist=(NewsList) ConvertJsonToObj.Convert(object, NewsList.class);
- nl.add(newslist);
- }
- return nl;
- }
第二步:在Action层中获取List,并转换成符合LigerUI的Json数组(需要在前面创建一个JSONObject对象 放入rows)
- public String findAllNews(){
- List<NewsList> list=this.newlistListDao.findAllNews();
- HashMap<String, Object> maps=new HashMap<String, Object>();
- List<HashMap<String, Object>> lists=new ArrayList<HashMap<String,Object>>();
- for (NewsList os : list) {
- HashMap<String, Object> hashmaps=new HashMap<String, Object>();
- hashmaps.put("infoid",os.getInfoid());
- hashmaps.put("infoTitle", os.getInfoTitle());
- hashmaps.put("infoType",os.getInfoType());
- lists.add(hashmaps);
- }
- maps.put("rows", list);
- maps.put("total", list.size());//需要写进Json中,告诉LigerUI一共有多少数据
- rows=JSONObject.fromObject(maps);
- System.out.println(rows);
- return BaseAction.SUCCESS;
- }
第三步:在Struts.xml文件中配置
- <action name="findAllNews" class="com.fudian.actions.NewsListAction" method="findAllNews">
- <result type="json">
- <param name="root">rows</param>
- </result>
- </action>
- $(function ()
- {
- window['g'] =
- $("#maingrid").ligerGrid({
- height: '99.2%',
- columns: [
- {display:'新闻标题', name:'infoTitle', align: 'left', width: 400 },
- {display:'新闻分类',name:'infoType',align:'left', width: 200},
- {display:'更新时间',name:'updateTime',align:'left',width:200},
- {display:'发布状态',name:'status',align:'left',width:100,render:function(item){
- <span style="white-space:pre"> </span>var str;
- <span style="white-space:pre"> </span>if(item.status=="1"){
- <span style="white-space:pre"> </span>str="已发布";
- <span style="white-space:pre"> </span>}else{
- <span style="white-space:pre"> </span>str="未发布";
- <span style="white-space:pre"> </span>}
- <span style="white-space:pre"> </span>return str;
- }},
- ],
- dataAction:"local",//分页用ligerUI自己的分页
- url:'<%=basePath%>fdirms/findAllNews',
- root:'rows', //内容需于返回来的名字对应!!
- record:'total', //总行数
- delayLoad:true,
- rownumbers: true,
- usePager:true,
- pageSize: 20,
- rownumbers: true,
- });
- $("#pageloading").hide();
- });
- $(function(){
- g.set({
- //数据请求地址
- url:"<%=basePath%>fdirms/findAllNews",
- //数据书否分页,默认为true
- usePager:true,
- });
- g.loadData(g.changePage('first'));
- });
在前台配置的时候需要注意的是:root那项一定要写你在Struts.xml文件配置中对应的返回对象名字,因为这个原因,我找了3个小时的错,才把数据显示出来。
其中我加入了一个render的方法,render方法可以帮助人们把状态的数字改成汉字,我在这里就是判断返回过来的status状态当为1的时候是已发布,其他的时候为未发布。
我这个分页是让LigerUI自己分页,所以在写SQL的时候是直接获取全部数据,所以在dataAction中的值为local 如果要是自己写分页也可以,dataAction的值为server。
如果值为Server的话,需要在Action中获取Pages和pageSize的两个值,并把两个值放进分页语句中。我的分页语句留在上面了,这个是SQL Server的分页语句,性能比较好的。需要借鉴的同学可以借鉴。
阅读全文
0 0
- LigerUI通过Struts2返回并显示
- LigerUI通过Struts2返回并显示
- LigerUI java struts2配置
- 一个关于LigerUI打开一个弹窗页面并将数据返回的方法
- 通过调用powershell命令监控虚拟机,并实时返回数据显示到listview上
- 通过请求不同的url返回Json对象并在前端显示的解决方法
- LigerUI 树状列表折叠显示
- Struts2 action通过struts2返回json方法(一)
- 通过 Intent传递数据,并返回结果
- SQLSERVER 返回错误代码并显示出来
- Django使用HttpResponse返回图片并显示
- struts2上传图片后并显示图片
- LigerUI
- ligerUI
- LigerUI
- LigerUI
- LigerUI
- LigerUI
- html视频标签属性
- 图形用户界面按钮布局
- Python-Django-静态文件
- django
- Scala actor
- LigerUI通过Struts2返回并显示
- 大地铆钉
- 23种设计模式之-----抽象工厂模式(AbstractFactory pattern)
- CentOS7安装并配置nginx服务器
- struts2点击切换中英文
- 金融中TA的概念
- Python与机器学习之实战(二)
- 文章标题
- tomcat加载两次项目