`
2277259257
  • 浏览: 515022 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Struts2+extjs (json)(亲测成功 )

 
阅读更多
 

Struts2与extjs集成傻瓜教程 

背景:

         最近学习在学习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>

 

 

分享到:
评论

相关推荐

    struts2+extjs+json整合实例

    Struts2、ExtJS和JSON是Web开发中的三个关键技术,它们在构建动态、交互式的Web应用程序时发挥着重要作用。下面将详细介绍这三个技术及其整合过程。 首先,Struts2是一个基于MVC(Model-View-Controller)设计模式...

    ExtJs + Struts2 + JSON 程序总结

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

    struts2+extjs2.1+json+hibernate+spring

    上网找资料,都是一些不全的. struts2+extjs2.1+json+hibernate+spring 自己整合的例子. 当中hibernate数据源可以配置自己的.后台输送json 前台接收.

    extjs+struts2+hibernate+json登录程序

    Struts2可以通过配置插件支持JSON响应,使得后端可以直接返回JSON格式的结果,而ExtJS可以方便地解析这些数据,根据返回的状态来显示相应的提示信息,如登录成功或失败。 具体实现流程如下: 1. 用户在前端界面...

    struts2+extjs4登录源码

    Struts2和ExtJS4是两个非常重要的Java Web开发框架,它们在构建高效、用户友好的Web应用程序中发挥着关键作用。在这个"Struts2+ExtJS4登录源码"项目中,我们可以深入理解这两个框架如何协同工作以实现一个基本的用户...

    Struts2+Json+ExtJS分页

    ### Struts2+Json+ExtJS分页技术详解 #### 一、技术背景与概述 在Web开发领域,实现高效的数据展示与交互是至关重要的。本文档将介绍如何使用Struts2框架结合JSON数据格式以及ExtJS前端库来实现动态分页功能。此...

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

    ### Hibernate+Spring+Struts2+ExtJS集成开发CRUD功能 #### 开源框架环境与下载 在构建一个基于`Hibernate+Spring+Struts2+ExtJS`的CRUD应用时,首先需熟悉各框架的基本特性和安装环境。 1. **Hibernate**:作为...

    ExtJS4+Accordion+SERVLET/STRUTS2+JSON+Ext.tree.Panel实例

    总结来说,这个实例展示了如何将前端的ExtJS4框架,特别是其Accordion布局和Ext.tree.Panel组件,与Servlet和Struts2后端框架集成,利用JSON进行数据交换,来创建一个动态的、交互性强的Web应用。用户可以通过折叠和...

    Hibernate+Spring+Struts2+ExtJS开发CRUD功能实例

    在本例中,Struts2将与ExtJS交互,接收前端的Ajax请求,调用后端服务,执行CRUD操作,并将结果以JSON或其他格式返回给前端。Struts2的拦截器机制也使得我们可以方便地添加自定义的业务逻辑或验证规则。 最后,ExtJS...

    struts2 + extjs例子

    3. **Struts2配置**:struts.xml文件中会有针对ExtJS请求的Action配置,可能包括JSON结果类型,以便返回的数据能被ExtJS解析。 4. **Model-View-Controller**:Struts2负责后台业务处理和数据传输,ExtJS负责前端...

    struts2+ExtJS(带分页效果)

    Struts2和ExtJS是两种在Web开发中广泛使用的开源技术。Struts2是一个基于MVC(Model-View-Controller)架构模式的Java Web框架,它简化了开发过程,提供了强大的控制层支持。而ExtJS则是一个前端JavaScript库,用于...

    Struts2.18+Spring2.56+Hibernate3+Extjs+JSON实现登陆修改密码等

    在这个项目中,JSON作为前后端数据交换的载体,用于在Struts2或Spring与ExtJS之间传递登录验证结果、密码修改信息等数据。 6. **邮件发送**:为了实现找回密码的功能,项目可能集成了邮件服务,当用户忘记密码时,...

    struts1.2+extjs+导出excel项目

    2. **数据传递**:由于Struts和ExtJS分别处理前后端,需要定义清晰的数据接口,如JSON格式,用于在两者间传递数据。 3. **安全性和性能**:导出大量数据时要考虑性能优化,避免内存溢出。同时,确保文件下载过程的...

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

    ### Hibernate+Spring+Struts2+ExtJS集成开发CRUD功能 #### 一、技术栈介绍与环境搭建 **1. Hibernate:** Hibernate是一个强大的对象关系映射(ORM)框架,用于简化Java应用程序与数据库之间的交互。通过...

    @@@extjs+struts2+json plugin的例子

    在IT行业中,构建Web应用程序是一项常见的任务,而`ExtJS`、`Struts2`和`JSON`是其中的关键技术,常被用来创建交互性强、功能丰富的用户界面和高效的服务器通信。下面将详细阐述这三个技术及其结合使用的情况。 ...

    struts2+extjs整合包

    Struts2的JSON插件可以方便地将Action的结果转换为JSON格式,供ExtJS的组件消费。同时,ExtJS可以通过Store和Proxy组件来管理和加载由Struts2返回的数据。 总的来说,这个整合包提供了开发基于Struts2和ExtJS的Web...

    Hibernate+Struts2+ExtJs4.0

    《整合Hibernate、Struts2与ExtJs4.0:基于JSON的数据传输实践》 在现代Web应用开发中,三大框架的整合是常见的技术选型,这里我们探讨的是Hibernate、Struts2与ExtJs4.0的集成应用。这三者分别负责持久层、控制层...

    Hibernate+Spring+Struts2+ExtJS CRUD

    在IT行业中,构建高效、可维护的Web应用是至关重要的,而SSH(Spring、Struts2、Hibernate)和ExtJS的结合使用就是一种常见的解决方案。本文将深入探讨如何利用这些技术实现CRUD(创建、读取、更新和删除)功能,并...

    extjs 跟 struts+json

    标题 "extjs 跟 struts+json" 暗示了本文将探讨如何使用ExtJS框架与Struts框架结合,通过JSON数据格式进行交互。ExtJS是一个强大的JavaScript库,用于构建富客户端Web应用程序,而Struts是Java Web开发中的一个MVC...

Global site tag (gtag.js) - Google Analytics