extjs 整合 struts2:
要导入的包很重要,很多demo就是没有说清楚这个,导致无法安装他们的博文进行演示。
那么接下去,就简单了。
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.enable.DynamicMethodInvocation"
- value="false" />
- <constant name="struts.devMode" value="false" />
- <package name="default" extends="json-default" namespace="/">
- <action name="gridUtil" class="org.lee.GridUtil">
- <result type="json" name="success"/>
- </action>
- </package>
- <!--
- <include file="example.xml"/>
- Add packages here -->
- </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> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="false" /> <package name="default" extends="json-default" namespace="/"> <action name="gridUtil" class="org.lee.GridUtil"> <result type="json" name="success"/> </action> </package> <!-- <include file="example.xml"/> Add packages here --> </struts>
page.jsp
<%@ page language="java" contentType="text/html; charset=GBK"
- pageEncoding="UTF-8"%>
- <!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">
- <link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css" />
- <script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
- <!-- ENDLIBS -->
- <script type="text/javascript" src="ext/ext-all.js"></script>
- <script type="text/javascript" src="js/paging.js"></script>
- <title>Struts2 Grid</title>
- </head>
- <body>
- <div id="grid"></div>
- </body>
- </html>
pageEncoding="UTF-8"%> <!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"> <link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css" /> <script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script> <!-- ENDLIBS --> <script type="text/javascript" src="ext/ext-all.js"></script> <script type="text/javascript" src="js/paging.js"></script> <title>Struts2 Grid</title> </head> <body> <div id="grid"></div> </body> </html>
page.jsp里面有自己写的paging.js文件
- Ext.onReady(function(){
- var sm = new Ext.grid.CheckboxSelectionModel();
- var cm = new Ext.grid.ColumnModel([
- new Ext.grid.RowNumberer(),
- sm,
- {header:'编号',dataIndex:'id'},
- {header:'名称',dataIndex:'name'},
- {header:'年龄',dataIndex:'age'},
- {header:'描述',dataIndex:'descn'}
- ]);
- cm.defaultSortable = true;
- var ds = new Ext.data.Store({
- proxy: new Ext.data.HttpProxy({url:'gridUtil.action',method:'POST'}),
- reader: new Ext.data.JsonReader({
- totalProperty: 'totalProperty',
- root: 'root'
- }, [
- {name: 'id'},
- {name: 'name'},
- {name: 'descn'},{name:'age'}
- ])
- });
- ds.load({params:{start:0,limit:10}});
- var grid = new Ext.grid.GridPanel({
- el: 'grid',
- ds: ds,
- cm: cm,
- sm: sm,
- title: 'struts2->JSON',
- //height:400,
- autoHeight: true,
- bbar: new Ext.PagingToolbar({
- pageSize: 10,
- store: ds,
- displayInfo: true,
- displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
- emptyMsg: "没有记录"
- }),
- tbar: new Ext.Toolbar({
- items:[
- {
- id:'buttonA'
- ,text:"Button A"
- ,handler: function(){ alert("You clicked Button A"); }
- }
- ,
- '-'
- // new Ext.Toolbar.SplitButton({})
- ,{
- id:'buttonB'
- ,text:"Button B"
- ,handler: function(){ alert("You clicked Button B"); }
- }
- ,
- '-'
- ,{
- id:'buttonc'
- ,text:"Button c"
- }
- ]
- })
- /* tbar: new Ext.PagingToolbar({
- pageSize: 10,
- store: ds,
- displayInfo: true,
- displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
- emptyMsg: "没有记录"
- })*/
- });
- grid.render();
- })
Ext.onReady(function(){ var sm = new Ext.grid.CheckboxSelectionModel(); var cm = new Ext.grid.ColumnModel([ new Ext.grid.RowNumberer(), sm, {header:'编号',dataIndex:'id'}, {header:'名称',dataIndex:'name'}, {header:'年龄',dataIndex:'age'}, {header:'描述',dataIndex:'descn'} ]); cm.defaultSortable = true; var ds = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({url:'gridUtil.action',method:'POST'}), reader: new Ext.data.JsonReader({ totalProperty: 'totalProperty', root: 'root' }, [ {name: 'id'}, {name: 'name'}, {name: 'descn'},{name:'age'} ]) }); ds.load({params:{start:0,limit:10}}); var grid = new Ext.grid.GridPanel({ el: 'grid', ds: ds, cm: cm, sm: sm, title: 'struts2->JSON', //height:400, autoHeight: true, bbar: new Ext.PagingToolbar({ pageSize: 10, store: ds, displayInfo: true, displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条', emptyMsg: "没有记录" }), tbar: new Ext.Toolbar({ items:[ { id:'buttonA' ,text:"Button A" ,handler: function(){ alert("You clicked Button A"); } } , '-' // new Ext.Toolbar.SplitButton({}) ,{ id:'buttonB' ,text:"Button B" ,handler: function(){ alert("You clicked Button B"); } } , '-' ,{ id:'buttonc' ,text:"Button c" } ] }) /* tbar: new Ext.PagingToolbar({ pageSize: 10, store: ds, displayInfo: true, displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条', emptyMsg: "没有记录" })*/ }); grid.render(); })
web.xml是最最基本的配置
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <display-name>Struts Blank</display-name>
- <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>
- <welcome-file-list>
- <welcome-file>index.html</welcome-file>
- </welcome-file-list>
- </web-app>
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Struts Blank</display-name> <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> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>
还有java的文件 GridUtil.java
- package org.lee;
- import java.util.ArrayList;
- import java.util.List;
- import com.opensymphony.xwork2.Action;
- import com.opensymphony.xwork2.ActionSupport;
- public class GridUtil extends ActionSupport{
- private int totalProperty = 100;
- private List root;
- public List getRoot() {
- return root;
- }
- public void setRoot(List root) {
- this.root = root;
- }
- public int getTotalProperty() {
- return totalProperty;
- }
- public void setTotalProperty(int totalProperty) {
- this.totalProperty = totalProperty;
- }
- public String execute(){
- System.out.println("----->>");
- root = new ArrayList();
- User user1 = new User();
- user1.setAge("20");
- user1.setDescn("descn1");
- user1.setId(1);
- user1.setName("name1");
- root.add(user1);
- User user2 = new User();
- user2.setAge("19");
- user2.setDescn("descn2");
- user2.setId(2);
- user2.setName("name2");
- root.add(user2);
- User user3 = new User();
- user3.setAge("14");
- user3.setDescn("descn3");
- user3.setId(3);
- user3.setName("name3");
- root.add(user3);
- return "success";
- }
- }
package org.lee; import java.util.ArrayList; import java.util.List; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionSupport; public class GridUtil extends ActionSupport{ private int totalProperty = 100; private List root; public List getRoot() { return root; } public void setRoot(List root) { this.root = root; } public int getTotalProperty() { return totalProperty; } public void setTotalProperty(int totalProperty) { this.totalProperty = totalProperty; } public String execute(){ System.out.println("----->>"); root = new ArrayList(); User user1 = new User(); user1.setAge("20"); user1.setDescn("descn1"); user1.setId(1); user1.setName("name1"); root.add(user1); User user2 = new User(); user2.setAge("19"); user2.setDescn("descn2"); user2.setId(2); user2.setName("name2"); root.add(user2); User user3 = new User(); user3.setAge("14"); user3.setDescn("descn3"); user3.setId(3); user3.setName("name3"); root.add(user3); return "success"; } }
User.java
- package org.lee;
- import java.util.List;
- public class User {
- private int id;
- private String name;
- private String age;
- private String descn;
- 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 getAge() {
- return age;
- }
- public void setAge(String age) {
- this.age = age;
- }
- public String getDescn() {
- return descn;
- }
- public void setDescn(String descn) {
- this.descn = descn;
- }
- }
package org.lee; import java.util.List; public class User { private int id; private String name; private String age; private String descn; 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 getAge() { return age; } public void setAge(String age) { this.age = age; } public String getDescn() { return descn; } public void setDescn(String descn) { this.descn = descn; } }
整个工程的样子,有错误是没有关系,不是发生在java code的地方
看下运行的效果吧:
网上有还有其他形式的整合方式,在struts2.xml中的配置方式不一样,没有用到struts.xml自己封好的方法,向前段发生数据,而是类似于servlet在action中直接发送。
相关推荐
Struts2和ExtJS3是两个非常流行的开源框架,它们在Web开发中有着广泛的应用。Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,而ExtJS3则是一个用于构建富客户端JavaScript应用的库。本文将...
Struts2、ExtJS和JSON是Web开发中的三个关键技术,它们在构建动态、交互式的Web应用程序时发挥着重要作用。下面将详细介绍这三个技术及其整合过程。 首先,Struts2是一个基于MVC(Model-View-Controller)设计模式...
Struts2和ExtJS4是两个非常重要的Java Web开发框架,它们在构建高效、用户友好的Web应用程序中发挥着关键作用。在这个"Struts2+ExtJS4登录源码"项目中,我们可以深入理解这两个框架如何协同工作以实现一个基本的用户...
### Hibernate+Spring+Struts2+ExtJS集成开发CRUD功能 #### 开源框架环境与下载 在构建一个基于`Hibernate+Spring+Struts2+ExtJS`的CRUD应用时,首先需熟悉各框架的基本特性和安装环境。 1. **Hibernate**:作为...
"Hibernate+Spring+Struts2+ExtJS整合开发实例"就是一个典型的Java Web应用程序开发案例,它将四个关键组件结合在一起,以实现高效、模块化的后端和前端功能。 **Hibernate** 是一个流行的Java对象关系映射(ORM)...
在IT行业中,构建Web应用程序是常见的任务,而“Hibernate+Spring+Struts2+ExtJS开发CRUD功能实例”提供了一个完整的解决方案,用于快速开发基于Java的Web应用,特别是涉及数据库操作的CRUD(创建、读取、更新、删除...
标题中的"Hibernate+Spring+Struts2+ExtJS"是一个经典的Java Web开发框架组合,也被称为SSH2(Struts2, Spring, Hibernate)与ExtJS的集成。这个组合在过去的几年里广泛应用于企业级应用开发,提供了强大的数据持久...
Struts2和ExtJS是两种在Web开发中广泛使用的开源技术。Struts2是一个基于MVC(Model-View-Controller)架构模式的Java Web框架,它简化了开发过程,提供了强大的控制层支持。而ExtJS则是一个前端JavaScript库,用于...
Struts2和ExtJS是两种在Web开发中广泛使用的开源技术。Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它极大地简化了创建企业级Java应用的过程。而ExtJS则是一款强大的JavaScript库,用于...
### Hibernate+Spring+Struts2+ExtJS集成开发CRUD功能 #### 一、技术栈介绍与环境搭建 **1. Hibernate:** Hibernate是一个强大的对象关系映射(ORM)框架,用于简化Java应用程序与数据库之间的交互。通过...
上网找资料,都是一些不全的. struts2+extjs2.1+json+hibernate+spring 自己整合的例子. 当中hibernate数据源可以配置自己的.后台输送json 前台接收.
Hibernate+Spring+Struts2+ExtJS开发CRUD功能最新版lib[Zone Yan] 2个小时才找全的啊。
"Ext学生信息系统(Spring+Struts2+ExtJs)"是一个综合性的Web应用程序,它结合了三种技术来构建一个高效的学生信息管理系统。该系统的主要特点是实现了数据的动态操作和页面的局部刷新,提供了便捷的数据管理和用户...
《整合Hibernate、Spring、Struts2与ExtJS:构建高效图文管理系统》 在现代Web开发领域,企业级应用常常需要处理复杂的数据管理与用户交互。一个典型的案例是使用Hibernate、Spring、Struts2和ExtJS这四大技术栈来...
Struts2和ExtJS是两种在Web开发领域广泛使用的开源技术。Struts2是一个基于MVC(Model-View-Controller)架构模式的Java Web框架,它简化了开发过程,提供了强大的控制层支持。而ExtJS则是一个JavaScript库,用于...
在IT行业中,构建高效、可维护的Web应用是至关重要的,而SSH(Spring、Struts2、Hibernate)和ExtJS的结合使用就是一种常见的解决方案。本文将深入探讨如何利用这些技术实现CRUD(创建、读取、更新和删除)功能,并...