- 浏览: 3558700 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
Struts2与extjs集成傻瓜教程
西南科技大学iSun团队黑色的月牙
背景:
最近学习在学习ext这个前台的界面框架,遇到一个难题就是不知道怎么让我们优秀的ext与我们优秀的struts集成起来,经过在网上的一番收索学习之后,做成了下面这个傻瓜教程。希望能对像我一样刚开始学习ext的朋友有帮助。
1准备工作:
除了平时引入的struts2的jar包以外,还需要引入struts2-json-plugin-2.1.8.1.jar;json-lib-2.1.jar这两个包。
Json介绍:
和XMl一样,JSON也是一种基于纯文本的数据格式。由于JSON天生好似为javascript准备的,因此JSON的数据格式非常的简单。想了解更多的关于JSON的知识请百度。。。
2.建立我们的model:User
package com.isun.model;
public class User {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id ) {
this .id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this .username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this .password = password;
}
}
3.建立我们的Action
这里是简单的演示struts-2与extjs的集成,所以全部的业务逻辑都放在Action中进行处理了。建立我们的LoginAction.当表单提交过来的时候我们也就能够在LoginAction中拿到数据了呵呵。
package com.isun.action;
import com.isun.model.User;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private boolean success;
private String message;
private User user;
public String execute()throws Exception{
if (user.getUsername().equals("admin")&&user.getPassword().equals("admin")){
this .success = true ;
this .message = "你的账号是:"+user.getUsername()+"密码为:"+user.getPassword();
}else {
this .success = false ;
this .message = "对不起,未经授权的用户不能登录该系统!";
}
return SUCCESS ;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this .success = success;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this .message = message;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this .user = user;
}
}
4.配置我们的struts.xml,注意extends=”json-default”
<?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="json-default" namespace="/">
<action name="Login" class="com.isun.action.LoginAction">
<result type="json"></result>
</action>
</package>
</struts>
5.在web.xml文件中陪上struts2
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<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.jsp</welcome-file>
</welcome-file-list>
</web-app>
6.接下来是前台的页面,其中包括login.html(登陆的界面),login.js(javascript代码),index.jsp(登陆成功后返回的界面)
Login.html
<!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=GB18030">
<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>
<script type="text/javascript" src="ext/ext-all-debug.js"></script>
<script type="text/javascript" src="js/login.js"></script>
<title>Extjs 学习</title>
</head>
<body>
</body>
</html>
Login.js
Ext.onReady(function (){
//使用表单提示
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget ="side";
//定义一个输入表单
var simple = new Ext.FormPanel({
labelWidth:40,
baseCls:'x-plain',
defaults:{width:180},
items:[{
xtype:'textfield',
fieldLabel:'账号',
name:'user.username',
allowBlank:false ,
blankText:'账号不能为空'
},{
xtype:'textfield',
inputType:"password",
fieldLabel:"密码",
name:'user.password',
allowBlank:false ,
blankText:"密码不能为空"
}],
buttons:[{
text:"提交",
type:"submit",
handler:function (){
if (simple.form.isValid()){
Ext.MessageBox.show({
title:"请等待",
msg:"正在加载",
progressText:"",
width:300,
progress:true ,
closable:false ,
animEl:'loding'
});
var f = function (v){
return function (){
var i = v/11;
Ext.MessageBox.updateProgress(i,'');
}
}
for (var i = 1; i < 13; i++){
setTimeout(f(i),i * 150);
}
//提交到服务器操作
simple.form.doAction("submit",{
url:"Login.action",
method:"post",
success:function (form,action){
document.location = 'index.jsp';
Ext.Msg.alert("登录成功!",action.result.message);
},
failure:function (form, action){
Ext.Msg.alert('登录失败',action.result.message);
}
});
}
}
},{
text:"重置",
handler:function (){
//重置表单
simple.form.reset();
}
}]
});
//定义窗体
var _window = new Ext.Window({
title:"登录窗口",
layout:"fit",
width:280,
height:150,
plain:true ,
bodyStyle:"padding:10px",
maximizable:false ,
closeAction:"close",
closable:false ,
collapsible:true ,
plain:true ,
buttonAlign:"center",
items:simple
});
_window.show();
});
Index.jsp
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!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=GB18030">
<title>Insert title here</title>
</head>
<body>
恭喜你登陆成功了!
</body>
</html>
这个是例子是我看到的最全的一个实例是转载的,在此感谢下博主
(http://blog.sina.com.cn/s/blog_6d0ec1c20100n73p.html)。
测试过了,能成功。如果你还不是成功,我愿意帮助你解决这个实例,我的QQ:1019990976,注明extjs struts2 sina 谢谢
发表评论
-
extjs4 ajax 同步设置
2012-08-31 13:42 1961// 把新的数据发送到服务端去,保存 E ... -
extjs4 bug查询
2012-08-25 15:57 5048Bug Fixes Fix tabs mouseo ... -
ExtJS4学习笔记八--Template的使用(转)
2012-08-24 13:32 1630http://hnhnhnhnhn.iteye ... -
ASP.NET+ExtJs4.0+表单提交submit,上传图片到服务器(转)
2012-08-22 12:44 2720ASP.NET+ExtJs4.0+表单提交submi ... -
EXTJS 4 form population with JSON read
2012-08-22 12:31 1853EXTJS 4 form population wi ... -
ExtJS Tree same parentNode
2012-08-19 17:22 1618ExtJS Tree same parentNode ... -
extjs4 一个很专业demo的博客
2012-08-19 16:57 1944http://extjstutorial.info/extjs ... -
ExtJs 4 – XTemplates
2012-08-18 20:34 1636Home › post › ExtJs 4 – XTe ... -
extjs4 tree操作
2012-08-18 20:25 5194Extjs tree 如何获得选中的节点 ... -
extjs4 打开pdf文件
2012-08-18 20:09 5882buttons: [{ text :'OPE ... -
cannot read property 'flex' of undefined
2012-08-18 13:45 7162Extjs的一个错误,谷歌浏览器捕获到的, 后来查了下原因, ... -
extjs4 初始化的一个方法
2012-08-17 21:03 1744initComponent : function() { ... -
extjs4 tree2
2012-08-16 15:26 1370http://blog.csdn.net/clskkk2222 ... -
Ext中的get、getDom、getCmp、getBody、getDoc的区别
2012-08-16 13:36 1611Ext中的get、getDom、getCmp、g ... -
extjs4 学习博客
2012-08-12 16:03 1441http://blog.csdn.net/zhaoqilian ... -
extjs4 上传文件
2012-08-11 23:23 1607http://blog.sina.com.cn/s/blog_ ... -
extjs4 struts2 grid 新增、删除、修改
2012-08-11 20:22 2081http://blog.csdn.net/dys1990/ar ... -
extjs4做的grid,带分页,搜索 (转)
2012-08-11 14:32 2236【原创】extjs4做的grid,带分页,搜索 最 ... -
extjs4 tree
2012-08-11 09:27 1972How To Use ExtJS 4 TreePan ... -
ExtJs xtype
2012-08-10 21:45 1672ExtJs xtype一览 (2012-06-2 ...
相关推荐
Struts2、ExtJS和JSON是Web开发中的三个关键技术,它们在构建动态、交互式的Web应用程序时发挥着重要作用。下面将详细介绍这三个技术及其整合过程。 首先,Struts2是一个基于MVC(Model-View-Controller)设计模式...
struts2 json extjs 完整实例 struts2 json extjs 完整实例 完整可用 无错! struts2 json extjs 完整实例 struts2 json extjs 完整实例 完整可用 无错! struts2 json extjs 完整实例 struts2 json extjs 完整...
ExtJs + Struts2 + JSON 是一种常见的前端与后端数据交互的技术组合,常用于构建富客户端应用。这里我们详细探讨一下这三个技术组件以及它们如何协同工作。 首先,ExtJs 是一个JavaScript库,用于创建复杂的、用户...
标题“Struts2与extjs整合例子”表明我们将探讨如何将这两个技术结合在一起,以实现后端与前端的高效协作。在实际项目中,这样的整合可以利用Struts2的强大处理能力和ExtJS的出色用户界面,创建出功能丰富且用户体验...
文章可能通过一个实际项目或示例,详细解释了如何将ExtJS的Grid Panel与Struts 2通过JSON进行数据交互,帮助读者理解这两种技术的整合过程。学习这些内容有助于提升Web应用的用户体验,实现数据的实时更新和交互。
在标签"json_hibernate extjs json_struts_ext jsp_json_extjs struts2"中,"json_struts_ext"和"jsp_json_extjs"暗示了JSON在Struts2扩展和JSP与ExtJS之间的交互作用。可能有一个配置或者插件用于让Struts2的动作类...
一个运用Extjs,Struts2, json,iterator技术构建的iterator_jsonDemo2。iterator_jsonDemo1的链接:http://download.csdn.net/detail/cafebar123/8816409 运用了Extjs,Struts2, json,iterator技术, 将数据从...
Struts2支持直接返回JSON结果,可以方便地与ExtJS等前端框架配合,实现异步更新页面。 综上所述,这个压缩包提供的资料可能涵盖了如何在Struts2中配置和使用Hibernate进行数据持久化,如何利用Spring进行依赖管理和...
在这个“struts2与extjs tree的完美结合”的示例中,开发者利用了Struts2的Annotation特性来简化配置,以及Struts2JSON插件来处理JSON数据,从而实现在服务器端动态生成和返回Tree节点。Annotation使得开发者能够在...
本示例中,EXTJS、Struts2和JSON共同用于制作一个登录窗口。 首先,我们需要在项目中引入必要的库文件,如描述中所示,包括Struts2的核心库和其他依赖库,例如Commons-logging、Freemarker、Ognl等。这些库文件是...
标题 "JPA STRUTS SPRING EXTJS JSON 同学录" 暗示这是一个使用特定技术栈开发的Web应用程序,旨在实现一个同学录的功能。这个应用可能包含用户登录、注册、查看、添加和编辑同学信息等核心功能。让我们详细探讨一下...
"struts2-extjs4.rar"这个压缩包文件包含了一个示例项目,演示了如何使用ExtJS4与Struts2进行JSON数据交互。 Struts2是一个基于MVC(Model-View-Controller)架构的开源Web应用程序框架,由Apache软件基金会维护。...
Struts2可以通过配置插件支持JSON响应,使得后端可以直接返回JSON格式的结果,而ExtJS可以方便地解析这些数据,根据返回的状态来显示相应的提示信息,如登录成功或失败。 具体实现流程如下: 1. 用户在前端界面...
1. **Struts2与ExtJS的通信方式**: - JSON:由于Struts2和ExtJS都是异步的,通常通过JSON(JavaScript Object Notation)进行数据交换。Struts2可以通过配置Action返回JSON结果,ExtJS则解析这些JSON数据并更新...
然而,当使用 Struts2 的 JSON 插件时,它默认返回的对象格式与 ExtJS 需要的数组格式不符,如下所示: ```json {"cls":"folder","id":10,"leaf":false,"children":[{"cls":"file","id":11,"leaf":true,"children":...
Struts2和ExtJS4是两个非常重要的Java Web开发框架,它们在构建高效、用户友好的Web应用程序中发挥着关键作用。在这个"Struts2+ExtJS4登录源码"项目中,我们可以深入理解这两个框架如何协同工作以实现一个基本的用户...
总结来说,这个实例展示了如何将前端的ExtJS4框架,特别是其Accordion布局和Ext.tree.Panel组件,与Servlet和Struts2后端框架集成,利用JSON进行数据交换,来创建一个动态的、交互性强的Web应用。用户可以通过折叠和...
上网找资料,都是一些不全的. struts2+extjs2.1+json+hibernate+spring 自己整合的例子. 当中hibernate数据源可以配置自己的.后台输送json 前台接收.
3. **Struts2配置**:struts.xml文件中会有针对ExtJS请求的Action配置,可能包括JSON结果类型,以便返回的数据能被ExtJS解析。 4. **Model-View-Controller**:Struts2负责后台业务处理和数据传输,ExtJS负责前端...
Struts2的JSON插件可以方便地将Action的结果转换为JSON格式,供ExtJS的组件消费。同时,ExtJS可以通过Store和Proxy组件来管理和加载由Struts2返回的数据。 总的来说,这个整合包提供了开发基于Struts2和ExtJS的Web...