[ExtJS5学习笔记]第三十二节 sencha extjs 5与struts2的ajax交互配置

本文地址:http://blog.csdn.net/sushengmiyan/article/details/43487751

本文作者:sushengmiyan

------------------------------------------------------------------------------------------------------------------------------------

sencha extjs 5 增加一个struts2的配置,这样可以在设置好前台布局之后,与后台交互获取数据显示。现在有一个问题是struts2对于url的跳转action支持比较良好,但是对于像Extjs这样,ajax请求的,无url跳转的实现,还是需要一点点技巧的。本文实例讲解一个Ext.Ajax.request的请求实例,返回后台处理之后的结果。

步骤一:创建struts2的配置文件struts.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>  

    <constant name="struts.devMode" value="true" />  

    <package name="basicstruts2" extends="struts-default">  

        <action name="index">
            <result>/index.jsp</result>
        </action>  

    </package>  

</struts> 

这个文件需要放置在src目录下,可以在下载的struts2中的webapp下找一个文件来直接使用,不需要自己一行代码一行代码的去敲,毕竟我们会使用就可以了。

步骤二:对web.xml修改,增加struts2的支持

<filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>  

<filter-mapping>
  <filter-name>struts2</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>  

这表示struts2会接管所有的请求,这样我们前台的请求都会纳入struts2的支持了

步骤三:增加struts2核心jar包以及struts2依赖的jar包

需要的jar包邮以下几个:

1.commons-fileupload-1.3.1.jar

2.commons-io-2.2.jar

3.commons-lang3-3.2.jar

4.freemarker-2.3.19.jar

5.javassist-3.11.0-GA.jar

6.ognl-3.0.6.jar

7.struts2-core-2.3.20.jar

8.xwork-core-2.3.20.jar

这8个jar包都可以在struts2的lib包里面找到,拷贝到项目lib目录下就可以了,依赖的jar包之前有专门罗列过,参照:

http://blog.csdn.net/sushengmiyan/article/details/43272061

到此为止,我们的项目就配置成功了struts2,怎么去验证成功与否呢?我们使用extjs写一个ajax的request

步骤四:书写前台ajax请求

		Ext.Ajax.request({
			url: ‘foo‘,
			async: false,
			success: function(response) {
				debugger;
				var data = Ext.decode(response.responseText);
                                console.log(data);

			}
		});

这里使用Ext.Ajax.request发送请求,指定了url为foo这个url就对应着struts2的一个action连接。我这里不太喜欢配置xml文件,而是喜欢使用struts2的注解的方式来实现跳转,所以下一步,增加一个注解插件

步骤五 增加struts2的注解插件

jar包增加struts2-convention-plugin-2.3.20.jar

步骤六:熟悉后台实现代码

在src目录下增加自己的实现类

我这里新建了一个包com.oasystem.action

新增一个类TestAction

package com.oasystem.action;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;

import com.opensymphony.xwork2.ActionSupport;

public class TestAction extends ActionSupport {

	private static final long serialVersionUID = 5316344216452587235L;
	private String _dc;
	//这里就是使用注解指定struts2 action调用的地方
	@Action(value = "/foo")
	//方法设置成了void 不需要返回数据之间将数据写回到response中了
	public void foo() {
		HttpServletResponse response = ServletActionContext.getResponse();
		response.setCharacterEncoding("utf-8");
                String abc = "{‘a‘:‘测试‘}";

                try {
			response.getWriter().write(abc);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	};	

	public String get_dc()
	{
	  return this._dc;
	};

	public void set_dc(String dc)
	{
	   this._dc = dc;
	};

}

OK测试一下,启动tomcat服务器,执行这个ajax请求:

命令行输出内容:

OK到现在,就已经成功将struts2与sencha extjs实现了关联。所有的后台都可以由struts2来接管了。

时间: 02-04

[ExtJS5学习笔记]第三十二节 sencha extjs 5与struts2的ajax交互配置的相关文章

[ExtJS5学习笔记]第三十节 sencha extjs 5表格gridpanel分组汇总

本文地址:http://blog.csdn.net/sushengmiyan/article/details/42240531 本文作者:sushengmiyan ------------------------------------------------------------------------------------------------------------------------------------ 本文以一个实际例子,使用了extjs的gridpanel中的分组统计显

[ExtJS5学习笔记]第三十一节 sencha extjs 5使用cmd生成的工程部署到tomcat服务器

本文地址:http://blog.csdn.net/sushengmiyan/article/details/42940883 本文作者:sushengmiyan ------------------------------------------------------------------------------------------------------------------------------------ 使用sencha cmd build app 生成的工程,我们期望只使

[ExtJS5学习笔记]第三十四节 sencha extjs 5 grid表格之java后台导出excel

继上次使用js前端导出excel之后,还有一个主要大家比较关注的是后台实现导出excel,因为本人开发使用的java所以这里使用apache的开源项目poi进行后台excel的导出. 本文目录 本文目录 poi项目下载及加载 extjs前端导出设置 extjs后台对应的解决方案 创建excel工作簿 创建一个excel页签 生成excel样式并初始化 产生表格标题行build headers 构造数据行build rows poi项目下载及加载 POI项目是apache官网的一个开源项目,其主要

[ExtJS5学习笔记]第三十五节 sencha extjs 5 组件查询方法总结

一个UI前台组件肯定会比较多,我们通常习惯性的使用ID来获取需要操作的组件,但是这种方法是extjs推荐的么?有没有extjs推荐使用的获取组件的方法呢? 目录 目录 extjs的查询组件的API 查询实例 基本的组件查询 组件树查询 通过组件的属性检索 属性匹配操作符 逻辑运算的 官方案例 extjs的查询组件的API 组件查询API文档地址:5.1.0-apidocs/#!/api/Ext.ComponentQuery-method-query 可以看到是使用的Ext.ComponentQu

[ExtJS5学习笔记]第三十三节 sencha extjs 5 grid表格导出excel

使用extjs肯定少不了使用表格控件,用到表格,领导们(一般)还是惯于使用excel看数据,所以用到extjs表格的技术猿们肯定也会有导出表格excel这一个需求,本文主要针对如何在用extjs将grid表格导出到excel,使用的是前端导出,不涉及后端. 本文目录 本文目录 源代码打包下载 将源代码嵌入到应用中 查看导出按钮以及导出效果 扩展支持sum统计和groupsum分组 源代码打包下载 本次使用的是github上的一个开源项目Exporter 下载地址:https://github.c

[extjs5学习笔记]第三十八节 sencha CMD 6.0.0.220版本安装

本文地址:http://blog.csdn.net/sushengmiyan/article/details/46740381 简介 sencha cmd 6安装过程不需要UAC控制了对于widnows来说,对于mac来说是启动权限,之前的版本,我们比较麻烦的事情是需要下载正确的ruby版本才可以使用cmd,现在6.0版本之后,就不需要单独安装ruby了,新版取消了对ruby的依赖.新版cmd增加了对jre的默认安装,选择下载包的时候,可以直接下载带有jre的安装包,这样就不需要再单独安装jre

[ExtJS5学习笔记]第二十八节 sencha ext js 5.1.0发布版本正式发布

本文地址:http://blog.csdn.net/sushengmiyan/article/details/41242993 本文作者:sushengmiyan ------------------------------------------------------------------------------------------------------------------------------------ 官方博客发布了这个新版本说明,英文文章请戳下面 http://www.

[extjs5学习笔记]第三十七节 Extjs6预览版都有神马新东西

本文在微信公众号文章地址:微信公众号文章地址 本文地址:http://blog.csdn.net/sushengmiyan/article/details/45190485 [TOC] 在Ext JS 6,可以使用单一的javascript框架来无缝的创建基于桌面.平板和智能手机的应用程序. ExtJS 6 早期版本发布,新增功能如下: 合并了 Ext JS 和 Sencha Touch 功能 通过 Sencha Cmd 6,新增时尚主题功能 3D 绘图功能增强 默认Ext JS 网格辅助选项为

学习笔记第三十二节课

iptables规则备份和恢复. service iptables save 会把规则保存到 /etc/sysconfig/iptables配置文件中,但是有时候不想保存这个位置. 可以用命令 iptables-sabe > 到你想保存的位置. 恢复备份的规则的话 是iptables-restore 保存之后清空掉就没有规则了. 再恢复一下 规则就出来了. 备份的规则只有恢复的时候会用到,如果一重启服务器,就想加载一些规则,最好放在 etc /sysconfig/iptables 里面. 现在学