`
风清扬One
  • 浏览: 3439 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Struts2和ExtJS的整合示例

阅读更多

ExtJS是一个开发RIA的利器,在这里,将写一个Struts2和ExtJS整合的示例,以方便广大的开发者,学习者。。。

约定:

1、为了开发方便,不使用数据访问。

2、为了稍微体现一点分层思想,设置控制器层和业务逻辑层。

3、该示例的功能是使用ExtJS和JSON格式数据在JSP页面中显示一个表格,该表格将显示一些用户信息数据。用户信息数据直接来自编写的程序代码。

4、整个事例的开发结构图如下:

 

开发步骤:

以分层思想的开发步骤编写相应的代码。

第一步:导入相关的开发包,ExtJS库文件,配置web.xml文件,详细设置省略。(友情提示:使用了json-lib)

第二步:编写相应的实体类User.java,如下:

package com.wgs.pojo;

import java.io.Serializable;

public class User implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 949408143352061092L;
	private int id;
	private String name;
	private String gender;
	private int age;

	public User() {

	}

	public User(int id, String name, String gender, int age) {
		this.id = id;
		this.name = name;
		this.gender = gender;
		this.age = age;
	}
	
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", gender=" + gender
				+ ", age=" + age + "]";
	}

}
 

第三步:编写相应的Service业务逻辑层代码UserService.java,如下:

package com.wgs.service;

import java.util.ArrayList;
import java.util.List;

import net.sf.json.JSONArray;

import com.wgs.pojo.User;

public class UserService {

	public List<User> findAll() {
		List<User> list = new ArrayList<User>();
		User u1 = new User(1001, "Wgssmart", "男", 21);
		User u2 = new User(1002, "Jane", "女", 21);
		User u3 = new User(1003, "Tom", "男", 21);
		User u4 = new User(1004, "Lily", "女", 21);
		User u5 = new User(1005, "Lucy", "女", 21);
		User u6 = new User(1006, "Jim", "男", 21);
		list.add(u1);
		list.add(u2);
		list.add(u3);
		list.add(u4);
		list.add(u5);
		list.add(u6);
		return list;
	}
	
	public String getAllJson() {
		return "{rows:" + JSONArray.fromObject(findAll()).toString() + "}";
	}
}

 第四步:编写相应的Action代码,UserAction.java,如下:

package com.wgs.action;

import com.wgs.service.UserService;

public class UserAction {

	private String jsonUser;

	public UserAction() {

	}

	public void setJsonUser(String jsonUser) {
		this.jsonUser = jsonUser;
	}

	public String getJsonUser() {
		return jsonUser;
	}
	
	public String execute() {
		System.out.println("Hello");
		UserService us = new UserService();
		System.out.println(us.getAllJson());
		setJsonUser(us.getAllJson());
		return "success";
	}
	
}

 第五步:配置struts.xml文件,详细配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">

<struts>
	<package name="user" namespace="/user" extends="struts-default">
		<action name="listUser" class="com.wgs.action.UserAction">
			<result name="success" type="dispatcher">/user_list.jsp</result>
		</action>
	</package>
</struts>

 第六步:编写相应的ExtJS代码,作用是发送一个Ajax请求调用Struts框架中的Action,Action将返回JSON格式的用户信息数据,ExtJS将JSON格式的用户信息数据显示到Ext的表格组件中。如下:

SimpleGrid = function(config) {
	Ext.apply(this, config);
	this.colModel = new Ext.grid.ColumnModel( {
		defaults : {
			align : "center",
			sortable : true,
			menuDisabled : true,
			width : 120
		},
		columns : [ {
			header : "编号",
			dataIndex : "id"
		}, {
			header : "姓名",
			dataIndex : "name"
		}, {
			header : "性别",
			dataIndex : "gender"
		}, {
			header : "年龄",
			dataIndex : "age"
		} ]
	});
	this.store = new Ext.data.Store( {
		proxy : new Ext.data.HttpProxy( {
			url : "user/listUser.action",
			method : "post"
		}),
		reader : new Ext.data.JsonReader({
			root : "rows"			
		},  [ {
			name : "id",
			mapping : "id"
		}, {
			name : "name",
			mapping : "name"
		}, {
			name : "gender",
			mapping : "gender"
		}, {
			name : "age",
			mapping : "age"
		} ])
	});
	SimpleGrid.superclass.constructor.call(this);
}
Ext.extend(SimpleGrid, Ext.grid.GridPanel);

Ext.onReady(function() {
	new SimpleGrid( {
		title : "用户列表",
		width : 500,
		height : 300,
		listeners : {
			afterrender : function(gp) {
				gp.store.load();
			}
		}
	}).render(Ext.getBody());
});

 第七步:编写index.jsp文件,导入相关的js代码(包括ExtJS的核心库文件和刚刚编写的ListUser.js文件),如下:

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>index page</title>
<link rel="stylesheet" type="text/css"
	href="./ext3/resources/css/ext-all.css"></link>
<script type="text/javascript" src="./ext3/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="./ext3/ext-all.js"></script>
<script type="text/javascript" src="./ext3/ext-lang-zh_CN.js"></script>
<script type="text/javascript" src="./js/UserList.js"></script>
</head>
<body>
</body>
</html>

 第八步:编写user_list.jsp文件,用户信息将在这个页面上显示出来,关键是获取Struts框架中的ValueStack。如下:

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>

<%@ page import="java.util.*,com.opensymphony.xwork2.util.*"%>
<%
	ValueStack vs = (ValueStack) request
			.getAttribute("struts.valueStack");
	String jsonUser = vs.findString("jsonUser");
	response.getWriter().println(jsonUser);
%>

 好了,所有代码都编写完毕。进入测试阶段,打开浏览器,输入http://localhost:8080/ExtStruts(前提是已经部署好应用并启用了Tomcat服务器),效果如下:

  • 大小: 26 KB
  • 大小: 35.3 KB
分享到:
评论

相关推荐

    Struts2与extjs整合例子

    这个整合示例将帮助开发者理解如何将Struts2的后端控制与ExtJS的前端展示无缝对接,实现高效的数据交互和动态界面更新。在学习过程中,建议深入研究两个框架的文档,了解它们的API和最佳实践,以便在实际项目中更好...

    Hibernate+Spring+Struts2+extjs开发的图文管理系统,完美运行

    一个典型的案例是使用Hibernate、Spring、Struts2和ExtJS这四大技术栈来构建一个图文管理系统。这个系统通常具备强大的数据持久化、依赖注入、MVC架构以及丰富的前端交互特性,从而实现高效且用户友好的功能。 ...

    Extjs整合struts2.doc

    Struts2、Hibernate、Spring 和 ExtJS 是四个在企业级 Web 开发中广泛使用的框架,它们各自负责不同的职责。在本教程中,我们将探讨如何将这些技术整合在一起,以及如何将 ExtJS 与 Highcharts 结合,以创建一个功能...

    比较流行的框架模式(Hibernate+Spring+Struts2+ExtJS)

    - `Hibernate+Spring+Struts2+ExtJS整合.rar`:这个文件可能是整个整合教程的源代码或者配置文件,包含了如何将这四个框架集成到一个项目中的步骤和示例。 这个组合的优势在于,Struts2处理HTTP请求和页面展示,...

    Hibernate+Spring+Struts2+ExtJS开发CRUD功能.doc

    在整合Hibernate、Spring、Struts2和ExtJS时,CRUD(创建、读取、更新、删除)功能的实现通常遵循以下步骤: 1. **实体类定义:** 使用Hibernate注解定义实体类,建立与数据库表的映射关系。 2. **DAO层实现:** ...

    ssh框架整合Extjs4.0示例,完整系统

    这个示例提供了一个完整的系统,可以立即运行,展现了SSH(Spring、Struts2和Hibernate)与ExtJS4.0的深度集成。下面我们将深入探讨这两个框架的核心概念以及它们如何协同工作。 首先,SSH是Java Web开发中的三大...

    extjs 跟 struts+json

    文章可能通过一个实际项目或示例,详细解释了如何将ExtJS的Grid Panel与Struts 2通过JSON进行数据交互,帮助读者理解这两种技术的整合过程。学习这些内容有助于提升Web应用的用户体验,实现数据的实时更新和交互。

    struts2+ext代码

    "Struts2_demo"这个压缩包可能包含了一个简单的Struts2和ExtJS结合的示例项目。在这个项目中,你可能会找到以下部分: 1. **Web-INF** 目录:包含了struts.xml配置文件,定义了Action类及其映射,以及其他的配置...

    Ext和SSH整合示例

    - **web.xml配置**:Web应用程序的配置文件,用于配置Struts2和Spring的环境。 - Struts2的配置包括了`&lt;filter&gt;`和`&lt;filter-mapping&gt;`标签的配置,用于设置Struts2的FilterDispatcher。 - Spring的配置包括`...

    搭建EXTJS和STRUTS2框架(ext和struts2简单实例)

    ### 搭建EXTJS和STRUTS2框架(ext和struts2简单实例) #### 一、概述 本文档将详细介绍如何在Java Web项目中搭建EXTJS和STRUTS2框架,并通过一个简单的实例来展示如何使这两个技术协同工作。EXTJS是一个用于构建交互...

    spring mvc+hibernate+extjs代码示例

    这是一个基于Spring MVC、Hibernate和ExtJS的Web应用示例,主要展示了如何整合这三个技术来构建一个功能完善的后台管理系统。下面将分别对这三个技术及其整合方式进行详细介绍。 **Spring MVC** Spring MVC是Spring...

    SSH整合Extjs

    在IT行业中,SSH整合指的是Spring、Struts和Hibernate这三大框架的集成应用,它们是Java Web开发中的常用组件。SSH整合提供了模型-视图-控制器(MVC)架构的完整解决方案,大大简化了企业级应用的开发过程。而标题中...

    Extjs struts2 spring 图书馆

    【标题】"Extjs struts2 spring 图书馆"是一个基于流行Java技术栈构建的图书馆管理系统,它将前端的富互联网应用(RIA)框架Extjs与后端的MVC框架Struts2和企业级服务管理框架Spring进行了深度融合。这个项目为...

    extjs Struts 实例程序

    ExtJS和Struts是两种广泛应用于Web开发的技术。ExtJS是一种强大的JavaScript库,主要用于构建用户界面,而Struts是基于MVC(Model-View-Controller)设计模式的Java Web框架。这个“ExtJS Struts实例程序”是一个...

    Extjs+hibernate+struts2+spring案例大全源代码

    此外,你还可以学习到如何整合这些框架,如Spring管理Struts2的Action,或者Spring与Hibernate的集成,实现数据访问对象(DAO)和业务服务层。这四个框架的协同工作,可以构建出高效、松耦合的企业级Web应用。 总的...

    漂亮的Extjs+struts2实现联动下拉

    总结来说,"漂亮的Extjs+struts2实现联动下拉"是结合了Struts2的服务器端处理能力和ExtJS的客户端展示优势的一个实用示例。通过Struts2 Action获取和处理数据,使用ExtJS的ComboBox组件展示和交互,实现动态联动效果...

    ExtJS3.3.0整合SSH

    在本文中,我们将深入探讨如何将 ExtJS 3.3.0 整合到基于 SSH(Struts2、Spring 和 Hibernate)的Web应用程序中。首先,让我们了解一下这些技术和它们的作用。 **ExtJS** 是一个强大的JavaScript库,专门用于构建富...

    struts_spring_hibernate_extjs4_笔记

    在整合Struts2和ExtJS4时,通常会定义JSON或XML数据源,使ExtJS能够获取和更新后端数据。Struts2 Action返回的结果可以是JSON格式,然后在ExtJS中解析并更新UI。通过这种方式,前端与后端实现了松耦合的数据交换。 ...

    ssh+extjs4整合开发

    总结来说,"ssh+extjs4整合开发"涉及到的技术栈是Java后端开发的强大组合,结合了Spring的灵活性、Struts2的MVC架构以及Hibernate的对象关系映射,再加上EXTJS4的富客户端能力。这种整合使得开发者能够构建出高效、...

Global site tag (gtag.js) - Google Analytics