`
wjt276
  • 浏览: 650266 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

Extjs3.x Struts2 -Json-plugin学习实例 -后台数据处理 03

阅读更多

因为这是只学习项目,所以我没有使用数据库了,直接在Action模式几条数据了。如果使用数据库,那代码量就大了,而这个项目只是学习整合Struts2,所以不用,大家自己确定,

 

数据我是使用static来完成,只要服务器不重新启动,数据就会在,哈哈,方便呀……

 

如何大家真不想自己输入代码,就下载吧。见附件。

 

实际后台代码也是非常的简单,只有几个类User/Dept/UserAction/DeptAction

大家自己建立相应的包

 

 

代码如下:

 

1、Dept类

package com.wjt276.extjs.model;
public class Dept {

	private int id;
	
	private String name;
	
	private String description;

	public Dept(int id, String name, String description) {
		super();
		this.id = id;
		this.name = name;
		this.description = description;
	}

	public Dept() {
		super();
	}

 //……我省了getter/setter方法,在项目中大家自己生成------		
}

 2、User

 

package com.wjt276.extjs.model;

public class User {

	private int id;
	
	private String username;
	
	private String name;
	
	private String password;
	
	private boolean sex;
	
	private String phone;
	
	private String tel;
	
	private String url;
	
	private String email;
	
	private Dept dept;
	
	private String address;
	
	private String description;	

	public User() {	}
	
	public User(int id, String username, String name, String password,
			String phone, String tel, String url, String email,
			String address, boolean sex, String description) {
		super();
		this.id = id;
		this.username = username;
		this.name = name;
		this.password = password;
		this.phone = phone;
		this.tel = tel;
		this.url = url;
		this.email = email;
		this.address = address;
		this.sex = sex;
		this.description = description;
	}

   //……我省了getter/setter方法,在项目中大家自己生成------	
}

 

3、DeptAction

数据也是在这里生成的,我多加了几个对象,是为了在前台观查数据,可以不是太好,大家不要管它

package com.wjt276.extjs.action;

import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.opensymphony.xwork2.ActionSupport;
import com.wjt276.extjs.model.Dept;

@SuppressWarnings("serial")
public class DeptAction extends ActionSupport {
	
	static SecureRandom random = new SecureRandom();  

	private Dept dept;

	private String msg;
	
	private boolean success;
	
	private int totalProperty;


	private List<Dept> depts = new ArrayList<Dept>();

	private Map<Integer, Dept> deptsMap = new HashMap<Integer, Dept>();

	private static List<Dept> lists = new ArrayList<Dept>();
	private static Map<Integer, Dept> maps = new HashMap<Integer, Dept>();

	static {
		Dept temp = new Dept(random.nextInt(100), "技术部", "技术……");
		Dept temp1 = new Dept(random.nextInt(100), "技术部5", "技术…55…");

		lists.add(temp);
		lists.add(temp1);
		maps.put(temp.getId(), temp);
		maps.put(temp1.getId(), temp1);
	}

	@Override
	public String execute() throws Exception {
		this.depts = lists;
		this.deptsMap = maps;
		this.success = true;
		this.totalProperty = this.depts.size();

		return SUCCESS;

	}

	public String add() throws Exception {
		
		System.out.println(dept.getName() + "," + dept.getDescription());
		
		Dept deptTemp = new Dept(random.nextInt(100),dept.getName(),dept.getDescription()); 
		
		lists.add(deptTemp);
		maps.put(deptTemp.getId(),deptTemp);
		
		this.success = true;
		return this.execute();
	}

	public String findDeptById(){
		this.dept = maps.get(dept.getId());
		this.success = this.dept != null;
		return SUCCESS;
	}
	
	public String delete() {
		return SUCCESS;
	}

	public String modify() throws Exception {
		if(this.dept == null){
			this.success = false;
			this.msg = "数据不合法……";
		} else {
			Dept tempDept = maps.get(dept.getId());
			this.success = tempDept != null;
			if(this.success){
				maps.put(this.dept.getId(), this.dept);
				for(int i = 0; i < lists.size(); i++){
					Dept dept3 = (Dept)lists.get(i);
					if(this.dept.getId() == dept3.getId()){
						lists.remove(i);
						lists.add(this.dept);
						System.out.println("找到");
						break;						
					}
					System.out.println(dept3.getId());
				}
				
				return this.execute();
			} else {
				this.msg = "数据记录不存在!";
			}
		}		
		return SUCCESS;
	}

	
//-----------以下为Setter/getter方法--------------------------------------------------------------------------
	
	public List<Dept> getDepts() {
		return depts;
	}

	public void setDepts(List<Dept> depts) {
		this.depts = depts;
	}

	public Dept getDept() {
		return dept;
	}

	public void setDept(Dept dept) {
		this.dept = dept;
	}

	public Map<Integer, Dept> getDeptsMap() {
		return deptsMap;
	}

	public void setDeptsMap(Map<Integer, Dept> deptsMap) {
		this.deptsMap = deptsMap;
	}

	public int getTotalProperty() {
		return totalProperty;
	}

	public void setTotalProperty(int totalProperty) {
		this.totalProperty = totalProperty;
	}

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}
	
	public boolean isSuccess() {
		return success;
	}

	public void setSuccess(boolean success) {
		this.success = success;
	}

	public static List<Dept> getLists() {
		return lists;
	}

	public static Map<Integer, Dept> getMaps() {
		return maps;
	}
}

 

 

4、UserAction

 

package com.wjt276.extjs.action;

import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.struts2.json.annotations.JSON;

import com.opensymphony.xwork2.ActionSupport;
import com.wjt276.extjs.model.Dept;
import com.wjt276.extjs.model.User;

@SuppressWarnings("serial")
public class UserAction extends ActionSupport {

	static SecureRandom random = new SecureRandom();  

	private String ids;
	
	
	public String getIds() {
		return ids;
	}

	public void setIds(String ids) {
		this.ids = ids;
	}

	private String msg;
	
	private Dept dept;
	
	private boolean success;
	
	private int totalProperty;
	
	private User user;	
	
	private List<User> users = new ArrayList<User>();
	
	private Map<Integer,User> usersMap = new HashMap<Integer,User>();
	
	private static List<User> lists = new ArrayList<User>();
	private static Map<Integer,User> maps = new HashMap<Integer,User>();
	
	static {
		User temp = new User(random.nextInt(100),
							"wjt276",
							"吴俊涛",
							"19831213",
							"05513238815",
							"18955113096",
							"http://wjt276.iteye.com",
							"wjt276@126.com",
							"安徽合肥淝河南路",
							true,
							"我是一名技术员"
							);
		
		temp.setDept(DeptAction.getLists().get(0));
		lists.add(temp);
		maps.put(temp.getId(), temp);
	}
	
	
	@Override
	public String execute() throws Exception {
		
		this.users = lists;
		this.usersMap = maps;
		
		this.success = true;
		this.totalProperty = this.users.size();
		
		return SUCCESS;
		
	}

	public String add() throws Exception{
	
		System.out.println(this.user.getUsername() + "," + this.user.getName());
		
		this.user.setId(random.nextInt(100));
		this.user.setDept(DeptAction.getMaps().get(this.dept.getId()));
		
		lists.add(this.user);
		maps.put(this.user.getId(),this.user);
		
		this.success = true;
		return this.execute();
	}
	
	public String findUserById(){
		this.user = maps.get(this.user.getId());
		this.success = this.user != null;
		return SUCCESS;
	}
	
	public String delete() throws Exception{
		
		if(this.ids != null && !"".equals(this.ids.trim())){
			String[] id_s = this.ids.split(",");
			
			for(int i = 0; i < id_s.length; i++){
				int id = Integer.parseInt(id_s[i]);
				System.out.println(id);
				for(int j = 0; j < lists.size(); j++){
					User user3 = (User)lists.get(j);
					if(id == user3.getId()){
						lists.remove(j);
						maps.remove(id);
						break;
					}
				}								
			}
		}
		return this.execute();
	}
	
	public String modify() throws Exception{
		
		if(this.user == null){
			this.success = false;
			this.msg = "数据不合法……";
		} else {
			User tempUser = maps.get(this.user.getId());
			this.success = tempUser != null;
			if(this.success){
				maps.put(this.user.getId(), this.user);
				for(int i = 0; i < lists.size(); i++){
					User user3 = (User)lists.get(i);
					if(this.user.getId() == user3.getId()){
						lists.remove(i);
						this.user.setDept(DeptAction.getMaps().get(this.dept.getId()));
						lists.add(this.user);
						System.out.println("找到");
						break;						
					}
					System.out.println(user3.getId());
				}
				
				return this.execute();
			} else {
				this.msg = "数据记录不存在!";
			}
		}		
		return SUCCESS;
	}

	//-------------以下为getter/setter方法------------------------------------------------------------------
	
	public static SecureRandom getRandom() {
		return random;
	}

	public static void setRandom(SecureRandom random) {
		UserAction.random = random;
	}

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}

	public Dept getDept() {
		return dept;
	}

	public void setDept(Dept dept) {
		this.dept = dept;
	}

	public boolean isSuccess() {
		return success;
	}

	public void setSuccess(boolean success) {
		this.success = success;
	}

	public int getTotalProperty() {
		return totalProperty;
	}

	public void setTotalProperty(int totalProperty) {
		this.totalProperty = totalProperty;
	}

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	public List<User> getUsers() {
		return users;
	}

	public void setUsers(List<User> users) {
		this.users = users;
	}

	public Map<Integer, User> getUsersMap() {
		return usersMap;
	}

	public void setUsersMap(Map<Integer, User> usersMap) {
		this.usersMap = usersMap;
	}

	
	
	
}

  

 

 

 

 

  • src.rar (4.1 KB)
  • 下载次数: 272
分享到:
评论
1 楼 zssggg 2010-10-26  
多谢,我正需要这些。

相关推荐

    struts2-hibernate-spring-Extjs-json.rar_JSON_extjs_extjs json st

    这个压缩包“struts2-hibernate-spring-Extjs-json.rar”显然包含了关于这些技术整合使用的参考资料。下面将详细阐述这些技术以及它们之间的交互。 1. **Struts2**: Struts2是一个基于MVC(模型-视图-控制器)...

    Extjs3.x入门学习

    这可能是全面的ExtJS 3.x教程,涵盖了从基础到进阶的所有内容,包括组件体系、布局管理、数据绑定、AJAX通信、事件处理等。 通过深入学习以上知识点,你将能够熟练地运用ExtJS 3.x来开发功能丰富的Web应用。在实际...

    extjs3.x 官方示例以及chm版api

    2. **数据绑定**:ExtJS 3.x 引入了数据绑定的概念,允许组件与数据源进行双向绑定,极大地简化了UI与数据之间的同步。 3. **布局管理**:它提供了多种布局模式,如Fit、Form、Table、Border等,使开发者能够轻松...

    ExtJS 多文件上传 UploadDialog For ExtJS3.x

    ### ExtJS 多文件上传 UploadDialog For ExtJS3.x #### 概述 在Web开发领域,特别是使用ExtJS框架进行界面设计时,文件上传功能是必不可少的一部分。然而,随着ExtJS版本的更新,原有的多文件上传组件可能不再兼容...

    extjs-json-数据转换

    使用ExtJs获取后台json格式的数据必须的七个jar包,commons-beanuti-1s-1.7.0.jar,commons-collections-3.1.jar,commons-lang-2.5.jar,commons-logging-1.0.4.jar,ezmorph-1.0.4.jar,json-lib-2.1.jar,...

    struts2-extjs4.rar

    通过这个示例项目,开发者可以学习如何设置Struts2的Action来生成JSON,如何在ExtJS4中配置Ajax请求,以及如何解析和展示接收到的JSON数据。这有助于理解和掌握两者的集成技术,从而在实际项目中实现更高效的数据...

    Struts2 Spring2.5 Hiberante3.3.2 +ExtJS(Struts2-json)做的CRUD

    这个DEMO是将这些技术集成在一起,以实现数据的创建(Create)、读取(Read)、更新(Update)和删除(Delete),即CRUD操作,并且利用Struts2的JSON插件来增强与前端ExtJS的交互。 首先,Struts2作为表现层框架,...

    Extjs Tree + JSON + Struts2 示例源代码

    在我的随笔Extjs Tree + JSON + Struts2中我介绍了如何异步加载一个Extjs的树,但是很多网友留言说不能成功操作。现在我自己做了一个所有源代码的包,供大家下载。 有几点事项请大家注意 1、blogjava的文件上载要求...

    ExtJS实现多文件上传UploadDialog For ExtJS3.x

    在本文中,我们将深入探讨如何使用ExtJS 3.x实现多文件上传功能,结合Struts2框架进行数据处理。首先,我们需要确保环境配置正确。在描述中提到,我们需要将一系列Struts2相关的库文件复制到项目的`WebContent\lib`...

    一个运用Extjs,Struts2, json,iterator技术构建的iterator_jsonDemo2。 将数据从后台传到Extjs表现层。

    iterator_jsonDemo1的链接:http://download.csdn.net/detail/cafebar123/8816409 运用了Extjs,Struts2, json,iterator技术, 将数据从后台传到Extjs表现层(自带json相关jar包)。注释详细,供参考。 Use ...

    ExtJs + Struts2 + JSON 程序总结

    ExtJs + Struts2 + JSON 是一种常见的前端与后端数据交互的技术组合,常用于构建富客户端应用。这里我们详细探讨一下这三个技术组件以及它们如何协同工作。 首先,ExtJs 是一个JavaScript库,用于创建复杂的、用户...

    ExtJS4+Accordion+SERVLET/STRUTS2+JSON+Ext.tree.Panel实例

    在这个实例中,Ext.tree.Panel可能被用来展示由Accordion布局管理的各个类别,每个类别下可能包含一系列子项,这些子项通过与后台Servlet或Struts2的交互,用JSON数据填充。 总结来说,这个实例展示了如何将前端的...

    stutsspringibatis+extjs图书管理系统

    本系统所用框架 struts2 spring ibatis extjs 数据库采用sqlserver 实现图书基本管理功能,对学习这些框架的人来说是难得的资源,包占空间大大我没放进来,我把包的名称都写下来了,系统没有问题,配置跑不通自己好好...

    extjs 跟 struts+json

    标题 "extjs 跟 struts+json" 暗示了本文将探讨如何使用ExtJS框架与Struts框架结合,通过JSON数据格式进行交互。ExtJS是一个强大的JavaScript库,用于构建富客户端Web应用程序,而Struts是Java Web开发中的一个MVC...

    ExtJS 3.x中文API

    3. **数据绑定(Data Binding)**:ExtJS的数据绑定机制使得视图层可以直接与数据源同步,实现数据驱动的UI更新。Store、Model和Proxy是数据绑定的三大组成部分。 4. **表单(Forms)**:ExtJS提供了强大的表单创建...

    nexus-3.27.0-03-win64.zip

    最新版的maven私服安装包,nexus-3.27.0-03-win64.zip 。Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护...

    Struts2(json-plugin) + Spring2 + ExtJS2.2 开源网络硬盘系统

    【标题】"Struts2(json-plugin) + Spring2 + ExtJS2.2 开源网络硬盘系统"是一个基于Java技术栈的开源项目,它利用了Struts2框架的json-plugin插件,Spring2作为服务层管理和依赖注入框架,以及ExtJS2.2作为前端展示...

    ExtJS+struts2+json登陆实例--源码

    这是一个基于ExtJS、Struts2和JSON的登录实例,适合初学者学习Web应用程序开发。这个实例演示了如何将前端的JavaScript框架ExtJS与后端的Java MVC框架Struts2结合,通过JSON进行数据交换实现用户登录功能。下面将...

    JSON.rar_JSON Hibernate_extjs_json struts ext_jsp json extjs_str

    在标签"json_hibernate extjs json_struts_ext jsp_json_extjs struts2"中,"json_struts_ext"和"jsp_json_extjs"暗示了JSON在Struts2扩展和JSP与ExtJS之间的交互作用。可能有一个配置或者插件用于让Struts2的动作类...

    @@@extjs+struts2+json plugin的例子

    此外,为了实现`ExtJS`和`Struts2`的无缝对接,开发者可能还使用了一些特定的插件或库,比如`struts2-extjs-plugin`,它可能提供了便利的配置和组件,简化了两者之间的集成工作。 综上所述,`@@@extjs+struts2+json...

Global site tag (gtag.js) - Google Analytics