`

ExtJs 与 Structs2交互的几大总结

 
阅读更多
package com.ysu.core.action;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
/**
 *Ext AJAX交换类 
 * 
 **/
@SuppressWarnings("serial")
public class ExtAjaxAction extends BaseAction {
	
	public void loadGridPanel(){
		List<PersonEntity> list = new ArrayList<PersonEntity>();
		PersonEntity  pe1 = new PersonEntity(1,"张三","男");
		PersonEntity  pe2 = new PersonEntity(2,"李四","女");
		PersonEntity  pe3 = new PersonEntity(3,"王五","无");
		list.add(pe1);
		list.add(pe2);
		list.add(pe3);
		String str = JSONArray.toJSONString(list);
		outJsonString(str);
	}
	/**
	 *添加表单 
	 **/
	public void submitForm(){
		String name = getRequest().getParameter("name");
		outJsonString("{success:true,name:'"+name+"'}");
	}
	/**
	 *加载表单 
	 **/
	public void loadForm(){
		
		PersonEntity  pe3 = new PersonEntity(3,"王五","无");
		String str = JSONObject.toJSONString(pe3);
		outJsonString("{success:true,data:"+str+"}");
	}
	
	/**
	 *普通一般的Ajax 服务器交互
	 **/
	public void normalAjax(){
		
		String str = getRequest().getParameter("name");
		outJsonString("{success:true,data:'"+str+"'}");
	}
	
	/**
	 *加载Panel的数据
	 **/
	public void loadPanel(){
		
		
		outJsonString("<h2>纯Html的数据<h2>");
	}
}



两个 XML 配置

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

<struts>
	<package name="coreaction" extends="struts-default" namespace="/">
		<action name="index" class="com.ysu.core.action.BaseAction" method="goToIndex">
			<result name="result">/index.jsp</result>
		</action>
	</package>
	<include file="struts-extjs.xml" />
</struts>


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC 
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
        "http://struts.apache.org/dtds/struts-2.0.dtd"> 
<struts>
	<package name="extjs" extends="coreaction" namespace="/">
		<!-- 加载loadgridpanel的数据 -->
		<action name="loadgridpanel" class="com.ysu.core.action.ExtAjaxAction" method="loadGridPanel"/>
		<!-- 提交Form的数据 -->
		<action name="submitform" class="com.ysu.core.action.ExtAjaxAction" method="submitForm"/>
		<!-- 加载form的数据 -->
		<action name="loadform" class="com.ysu.core.action.ExtAjaxAction" method="loadForm"/>
		<!-- 用纯Ajax交换数据 -->
		<action name="normalajax" class="com.ysu.core.action.ExtAjaxAction" method="normalAjax"/>
		<!-- 用存PanelLoad数据信息 -->
		<action name="loadpanel" class="com.ysu.core.action.ExtAjaxAction" method="loadPanel"/>
	
	
	</package>
</struts>



JS 脚本
Ext.onReady(function(){
	Ext.BLANK_IMAGE_URL = 'ext/resources/images/default/s.gif';
	var grid = new Ext.grid.GridPanel({
		renderTo:'gridpanel',
		store:new Ext.data.JsonStore({
			url:'loadgridpanel.action',
			autoLoad:true,
			fields:['id','name','sex']
		}),
		cm:new Ext.grid.ColumnModel(
			[
				{dataIndex:'id',header:'id',sort:true},
				{dataIndex:'name',header:'name',sort:true},
				{dataIndex:'sex',header:'sex',sort:true}
				
			]),
		width:400,
		height:150
	});
	
	/**
	 *表单交互 
	 * 
	 **/
	var form = new Ext.FormPanel({
		title:'FormPanel',
		renderTo:'formpanel',
		tbar:[{text:'提交',handler:function(){
			form.getForm().submit(
				{
					method:'POST',
					url:'submitform.action',
					success:function(form,action){
						alert(action.result.name);
						alert('提交成功');
					},
					failure:function(form,action){
						alert('提交失败');
					}
				}
			);
			
		}},'-',
			{
				text:'加载',
				handler:function(){
					form.load({
		                waitTitle: '标题数据信息',
		                waitMsg: '正在加载',
		                params:{vid:'1'},
						url:'loadform.action',
		                success: function(action, form){
		                	alert('OK');
		                },
		                failure: function(action, form){
		                    alert('失败');
		                }
		            });
				}
			}
		],
		width:400,
		height:150,
		items:[
			{
				xtype:'textfield',name:'name',fieldLabel:'姓名'
			},
			{
				xtype:'textfield',name:'id',fieldLabel:'编号'
			},
			{
				xtype:'textfield',name:'sex',fieldLabel:'性别'
			}]
		
	});
	
	/**
	 *按钮存Ajax交换适用于任何的
	 *提交或与服务器交互 
	 * 
	 **/
	
	var btn = new Ext.Button({
		renderTo:'button',
		text:'AJAX 的提交测试',
		handler:function(){
			Ext.Ajax.request({
				url:'normalajax.action',
				params:{name:'张三'},
				method:'POST',
				success:function(response,option){
					alert("从服务器相应回来的数据是 "+response.responseText);
					var obj = Ext.util.JSON.decode(response.responseText);
					alert("请求的数据是 ----"+obj.data);
					var _o = Ext.util.JSON.decode(response.responseText);
					var _j = Ext.decode(response.responseText);
					
	
				},
				failure:function(response,option){
					alert(response.responseText);
				}
			});
		}
	});
	/**
	 *Panel 数据信息 
	 **/
	
	var panel = new Ext.Panel({
		renderTo:'panel',
		autoLoad:{url:'loadpanel.action'},
		width:300,
		height:50
		
	})
	
});


jsp 文件内容信息

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>便利好的标签库</title>
  	
  	<script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
	<script type="text/javascript" src="ext/ext-all.js"></script>
	<link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css">
    <script type="text/javascript" src="ajax/ajax.js"></script>
  </head>
  <body>
    <h4 align="center">Grid 主要是利用Store 与JAVA进行 Ajax的交互</h4>
	<div align="center" id="gridpanel"></div>
	<div align="center">Form有自己的load 方法 与 submit 方法</div>
	<div id="formpanel" align="center"></div>
	<br/><br/>
	<div align="center">普通的按钮Ajax的数据按钮</div>
	<br/><br/>
	<div align="center" id="button"></div>
	<br/><br/>
	<div  align="center">利用Panel的load 功能进行ajax数据加载 Panel 里面的内容是从服务器上返回的数据</div>
	<div  align="center" id="panel"></div>
	<hr/>1<hr/>
  </body>
</html>





分享到:
评论

相关推荐

    ExtJs + Struts2 + JSON 程序总结

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

    ExtJS+Struts2

    在"ExtJS+Struts2"的组合中,前端使用ExtJS进行界面设计和用户交互处理。例如,"简单增删改"功能通常会涉及到ExtJS的Grid Panel组件,它能展示数据表格,支持行操作,如添加新记录、删除现有记录以及编辑单元格内容...

    EXTJS4+STRUTS2+JAVA增删改查

    EXTJS4、STRUTS2和JAVA是Web开发中常用的三大技术框架,它们结合使用可以构建功能丰富的交互式用户界面和高效的企业级应用。在这个"EXTJS4+STRUTS2+JAVA增删改查"的例子中,我们将深入探讨这三个技术如何协同工作,...

    能运行的ExtJs+Struts2文件上传

    同时,ExtJs的Ajax请求需要与Struts2的Action配置相匹配,以便正确地发送和接收数据。 在压缩包文件名称列表"ext_struts_shangchuan"中,我们可以推测这可能包含了项目的基本结构,如HTML、CSS、JavaScript(ExtJs...

    ExtJS与Struts2的整合工程实例

    5. **文档阅读**:提供的"struts2与ext如何整合.doc"文档应包含了详细的整合步骤和注意事项,包括可能出现的问题及解决方案,这对于开发者来说是一份宝贵的参考资料。 6. **工程实例**:"Struts2_ExtJS"可能是实际...

    extjs 跟 struts+json

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

    extjs与struts的整合代码

    总结来说,ExtJS与Struts的整合是现代企业级Web应用开发的一个常见方案,它结合了优秀的前端交互设计和后端架构管理,为用户提供高效、流畅的使用体验。在实际项目中,开发者应深入理解这两个框架的原理,以便更好地...

    搭建EXTJS和STRUTS2框架

    通过EXTJS的数据API与STRUTS2进行交互,例如使用Store来连接到STRUTS2 Action获取或更新数据。 4. **数据通信**:EXTJS使用Ajax请求与STRUTS2 Action通信。STRUTS2 Action返回的数据通常以JSON格式提供,EXTJS的...

    extjs+struts2省市区三级联动完整示例

    总结起来,这个"extjs+struts2省市区三级联动完整示例"展示了如何结合使用ExtJS的客户端能力与Struts2的服务器端控制来实现动态数据交互。通过这种方式,我们可以创建出响应式的用户界面,提高Web应用程序的用户体验...

    extjs+struts2结合实现

    ExtJS与Struts2结合应用详解 在当今的Web开发领域,富客户端(Rich Internet Application, RIA)已经成为提升用户体验的重要手段。其中,ExtJS以其强大的组件库和优雅的API,成为了开发者们青睐的JavaScript框架之...

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

    EXTJS是一个用于构建交互式前端界面的JavaScript库,而STRUTS2则是Java后端开发中的流行框架之一。通过整合这两项技术,可以实现更加灵活高效的应用程序开发。 #### 二、环境准备与基础配置 1. **创建项目**: - ...

    图书管理系统源码(ExtJs+struts2+hibernate+spring)

    【图书管理系统源码(ExtJs+struts2+hibernate+spring)】是一个基于Web的软件项目,它展示了如何整合多种技术来构建一个实际的应用系统。这个管理系统使用了前端框架ExtJs,后端MVC框架Struts2,持久层框架...

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

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

    Struts2与extjs整合例子

    标题“Struts2与extjs整合例子”表明我们将探讨如何将这两个技术结合在一起,以实现后端与前端的高效协作。在实际项目中,这样的整合可以利用Struts2的强大处理能力和ExtJS的出色用户界面,创建出功能丰富且用户体验...

    Extjs+Struts2+JDBC

    ExtJS、Struts2和JDBC是Web开发中常见的技术栈,它们的结合可以构建功能丰富的交互式Web应用。这个小例子提供了一个基于这些技术的简单增删改查(CRUD)操作的实现,对于初学者来说是一个很好的学习资源。 ExtJS是...

    struts2+extjs3 单/多文件上传

    总结来说,Struts2+ExtJS3组合可以有效地实现文件上传功能,无论是在后台处理还是在前端交互方面都有很好的支持。提供的资源包含了所有必要的JAR包,使得开发者可以快速集成并理解代码,减少了额外的下载和配置工作...

    extjs+struts2+hibernate+json登录程序

    ExtJS + Struts2 + Hibernate + JSON 登录程序是一个典型的Web开发示例,结合了前端JavaScript框架、MVC框架、持久层框架以及数据传输格式,实现了用户登录功能的前后端交互。下面将详细阐述这些技术及其在登录程序...

    EXTJS json struts2制作登陆窗口

    本示例中,EXTJS、Struts2和JSON共同用于制作一个登录窗口。 首先,我们需要在项目中引入必要的库文件,如描述中所示,包括Struts2的核心库和其他依赖库,例如Commons-logging、Freemarker、Ognl等。这些库文件是...

    extjs+struts2分页例子

    在EXTJS中,我们通常会创建一个Store对象来管理数据源,Store与远程数据源(如Struts2 Action)进行交互,通过Ajax请求获取数据。分页功能主要通过配置Store的`paging`属性来开启,同时需要定义`proxy`来设置数据的...

Global site tag (gtag.js) - Google Analytics