实现一个普通的数据库查询功能,参考了这个帖子:http://stackoverflow.com/questions/5499453/how-to-refresh-datagrid

需要注意的是动态创建DataGrid时,必须放在按钮的点击事件外,否则表格无法更新。

ACTION:

package cn.edu.just.action.configurationAction;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import cn.edu.just.Hibernate.POJO.ConfigurationDataTablePOJO.CmConfigurationInfo;
import cn.edu.just.Hibernate.POJO.ConfigurationDataTablePOJO.CmWBS;
import cn.edu.just.Hibernate.POJO.ConfigurationDataTablePOJO.CmWBSDAO;
import cn.edu.just.Hibernate.POJO.PublicDataTablePOJO.ComDept;
import cn.edu.just.Hibernate.POJO.PublicDataTablePOJO.ComDeptDAO;
import cn.edu.just.bean.configuration.ConfigurationMaintaining; import com.opensymphony.xwork2.ActionSupport; public class ConfigurationMaintainingAction extends ActionSupport { private String equipName; private String identifier="name";
private String label="name";
private List<Map<String,Object>> items=new ArrayList<Map<String,Object>>(); public String execute() throws Exception{
items.clear();
if(equipName!=null){
ConfigurationMaintaining configurationMaintaining=new ConfigurationMaintaining(equipName);
CmWBSDAO wbsDAO=new CmWBSDAO();
ComDeptDAO deptDAO=new ComDeptDAO();
Map<String,Object> mapItem=null;
for(CmConfigurationInfo configInfo:configurationMaintaining.getConfigInfos()){
mapItem=new HashMap<String,Object>();
CmWBS wbs=wbsDAO.findById(configInfo.getWbsId());
mapItem.put("wbs", wbs.getWbs());
mapItem.put("configName",configInfo.getConfigName());
mapItem.put("locationName",configInfo.getLocationName());
ComDept dept=deptDAO.findById(configInfo.getDeptId());
mapItem.put("deptName",dept.getDeptName());
mapItem.put("status", configInfo.getStatus());
items.add(mapItem);
}
}
return this.SUCCESS;
} public String getIdentifier() {
return identifier;
}
public void setIdentifier(String identifier) {
this.identifier = identifier;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public List<Map<String,Object>> getItems() {
return items;
}
public void setItems(List<Map<String,Object>> items) {
this.items = items;
} public String getEquipName() {
return equipName;
} public void setEquipName(String equipName) {
this.equipName = equipName;
} }

struts.xml(注意package要继承json-default):

<package name="getJSON" extends="json-default">
<action name="configurationMaintainingAction" class="cn.edu.just.action.configurationAction.ConfigurationMaintainingAction">
<result type="json" />
</action>
</package>

JSP(DOJO的版本是:1.10.4):

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'configurationMaintaining.jsp' starting page</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"> <style type="text/css">
@import "/dojoroot/dijit/themes/tundra/tundra.css";
@import "/dojoroot/dojox/grid/resources/tundraGrid.css";
</style> <script src="/dojoroot/dojo/dojo.js" data-dojo-config="isDebug: 1, async: 1, parseOnLoad: 1"></script>
<script>
var grid, dataStore, store;
require(["dojo/dom",
"dojo/on",
"dojo/request",
"dojo/dom-form",
"dojox/grid/DataGrid",
"dojo/store/Memory",
"dojo/data/ObjectStore",
"dojo/domReady!"],
function(dom, on, request, domForm,DataGrid,Memory, ObjectStore){
var form = dom.byId('formNode');
grid = new DataGrid({
query: { id: "*" },
id:"dataGrid1",
structure: [
{ name: "WBS", field: "wbs", width: "80px" },
{ name: "配置项名称", field: "configName", width: "120px" },
{ name: "位置名称", field: "locationName", width: "100px" },
{ name: "设备所属部门", field: "deptName", width: "120px" },
{ name: "状态", field: "status", width: "100px" }
]
}, "gridDiv"
);
grid.startup();
on(form, "submit", function(evt){
evt.stopPropagation();
evt.preventDefault();
request.post("configurationMaintainingAction.action", {
data: domForm.toObject("formNode"),
handleAs: "json"
}
).then(function(data){
store = new Memory({ data: data.items });
dataStore = new ObjectStore({ objectStore: store });
grid.store = dataStore;
grid._refresh();
}
);
}
);
}
);
</script> </head> <body bgcolor="#bae87c" class="tundra">
<br />
<table width="600px" align="center">
<tr><td>
<form id="formNode"><!-- action="configurationMaintainingAction.action" method="post" id="form1" -->
<fieldset >
<legend><font color="red"><b>查询</b></font></legend>
<table width="100%">
<tr><td align="center" >系统/设备/部件 <input type="text" name="equipName" /></td>
<td align="center">WBS <select style="width:156px;" name="configurationMaintaining.wbs">
<option value="----">———————————</option>
<s:iterator value="wbsNames" var="wbsName">
<option value="${wbsName}"><s:property value="wbsName" /></option>
</s:iterator>
</select>
</td>
</tr>
<tr><td></td><td align="center"><button type="submit" id="submitButton">查询</button></td>
</table>
</fieldset>
</form>
<br />
<form>
<fieldset >
<legend><font color="red"><b>配置信息</b></font></legend>
<div id="gridDiv" style="width:100%;height: 200px;" >
</div>
</fieldset>
</form>
</td></tr>
</table>
</body>
</html>

效果:

struts2+dojo实现datagrid动态刷新的更多相关文章

  1. struts2+dojo实现datagrid

    ACTION: package test.action; import java.util.ArrayList; import java.util.HashMap; import java.util. ...

  2. struts2 easyui实现datagrid的crud

    最近两天因为项目需要,接触了easyui,要用它的datagrid实现crud.第一次做,花了一天时间才完成所有功能,昨天做另外一个模块,同样的功能只用了两个小时. 现在把第一次做datagrid时遇 ...

  3. struts2+jquery+easyui+datagrid+j…

    一.概述 struts2提供了针对json的插件支持.常规来讲我们将如何将对象数组转成json对象在客户端直接调用呢?尤其和jquery的easyui插件配合使用,这个可能会有很多的问题需要我们解决. ...

  4. easyUI datagrid 分页参数page和rows

    Struts2获取easyUI datagrid 分页参数page和rows 用pageHelper分页时,只要是能够获取前台传来的两个参数page和rows基本就完成了很大一部分. 获取方法:定义两 ...

  5. 在Strust2 使用datatimepicker 标签引发的一系列问题

    问题:出现无法识别的问题 原因:Strust2.1开始,对于ajax类的标签不再使用<%@ taglib prefix="s" uri="/struts-tags& ...

  6. struts 2.1.8.1的sx:datetimepicker标签出现NaN错误的原因和解决办法

     作者:Junsan.Jin 邮箱:junsanjin@gmail.com QQ:1305896503 本文原始地址:http://www.rsky.com.cn/Article/java/201 ...

  7. dojo Datagrid 实现数据删除功能

    DataGrid实现数据动态刷新功能见前一个帖子:http://www.cnblogs.com/qq552048250/p/4447103.html 实现数据删除只需要向表格中动态添加按钮,并为按钮的 ...

  8. dojo DataGrid实现表格数据编辑的解决方案

    在官网上看见的DataGrid编辑非常简单,但我实现的时候总是出现问题.经过N久的摸索,终于搞定了,期间出现了多处困难,下面说些解决办法的流程. 我实现的表格在页面加载时是不显示数据,只有通过表单像服 ...

  9. Struts2+Datagrid表格显示(可显示多表内容)

    概述 最近学到EasyUI的Datagrid数据网格,然后就做了一个小例子,中间层利用Struts2来完成,DAO层用的是Hibernate. 数据库 数据库涉及到stuednt(name,noid, ...

随机推荐

  1. day 33 线程池有关的

    # cpu 的核心数# import os# print(os.cpu_count()) ## 爬虫的进程和线程的应用# 第一步 虚拟一个浏览器下载 在cmd 里输入 pip install requ ...

  2. mysql 优化2

    6. 合理使用EXISTS,NOT EXISTS子句.如下所示: 1.SELECT SUM(T1.C1) FROM T1 WHERE (SELECT COUNT(*)FROM T2 WHERE T2. ...

  3. Python 栈和队列,双向队列

    # 栈 # 特点: 先进后出 class StackFullException(Exception): pass class StackEmptyException(Exception): pass ...

  4. linux 基础命令使用

    Centos中查看系统信息的常用命令 系统日志文件(可以通过cat或tail命令来查看) /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一  ...

  5. SQL注入之Sqli-labs系列第二十九关(基于WAF防护的单引号报错注入)

    开始挑战第二十九关(Protection with WAF) 0x1查看源码 (1)login.php页面存在防护,只要检测到存在问题就跳转到hacked.php页面(其他信息看备注) 0x2 for ...

  6. Makefile 中 ifeq ifneq 等用法

    (1)ifeq的用法 ifeq ($(变量名), 变量值 ) ........ else ifeq ($(..), ..) ......... else ......... endif (2)最近在学 ...

  7. thinkphp5.0自定义验证器

    虽然我早就会些php基础语法,我套过数据,自己写的控制器层,不是用的api方式,那个公司是为了锻炼我,所以才那样做的,基本上的东西都是用的框架自带的,重来自己没有去封装过这些东西,所以编程思想上,还很 ...

  8. 【转载】 深度强化学习处理cartpole为什么reward很难超过200?

    原贴地址: https://www.zhihu.com/question/266493753 一直在看强化学习方面的内容,cartpole是最简单的入门实验环境,最原始的评判标准是连续100次epis ...

  9. 查询表Or列的注释信息

    需求:开发人员需要DBA支持,查询表的注释说明,用于明确表的用途. 1.测试 session 1 创建测试表SQL> create table a_emp as select * from sc ...

  10. 当BeanUtils遇到泛型

    前言: BeanUtils(spring版/apache版)工具极大方便了java developer, 尤其在写业务代码中, 各种域模型DO, BO, VO等对象之间的复制. 但使用BeanUtil ...