`
musicbox95351
  • 浏览: 229366 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

ext spring struts2 登录的简单示例

阅读更多
主要功能:使用ext form提交表单
               由struts2 action处理逻辑,并返回json数据
               ext接收返回的json数据给出提示
               使用spring管理bean
              
主要配置: 引入struts的json插件jar包,在struts的配置文件中配置为extends="json-default"。
                         action需返回如"{success:true,msg:'返回信息'}"的JSON字符

1   表单所在jsp(user_regist.jsp)
<%@ page language="java" pageEncoding="UTF-8"%>
   
<html>  
    <head>  
        <title>User Regist!</title>  
        <link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css"/>

    <!-- GC -->
    <!-- LIBS -->
    <script type="text/javascript" src="extjs/adapter/ext/ext-base.js"></script>
    <!-- ENDLIBS -->

    <script type="text/javascript" src="extjs/ext-all.js"></script>

    <script type="text/javascript" src="user_regist.js"></script>
    </head>  
    <body>  
        <div id="login"></div>  
    </body>  
</html>


2 user_regist.js
/*
 * Ext JS Library 2.3.0
 * Copyright(c) 2006-2009, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://extjs.com/license
 */

Ext.onReady(function() {
    var form = new Ext.form.FormPanel({
        baseCls: 'x-plain',
        layout:'absolute',
        url:'login.action',//处理表单提交的action路径
        defaultType: 'textfield',

        items: [{
            x: 0,
            y: 5,
            xtype:'label',
            text: '用户名:'
        },{
            x: 60,
            y: 0,
            name: 'userName',
            anchor:'100%'  // anchor width by percentage
        },{
            x: 0,
            y: 35,
            xtype:'label',
            text: '密码:'
        },{
            x: 60,
            y: 30,
            name: 'pwd',
            inputType:'password',
            anchor: '100%'  // anchor width by percentage
        }
        ]
    });

    var window = new Ext.Window({
        title: 'Resize Me',
        width: 500,
        height:300,
        minWidth: 300,
        minHeight: 200,
        layout: 'fit',
        plain:true,
        bodyStyle:'padding:5px;',
        buttonAlign:'center',
        items: form,

        buttons: [{
            text: 'log in',
            formBind:true,
            handler:function(){
                form.getForm().submit(
                    {
                        method:"POST",
                        url:"login.action",
                        waitMsg:"等着吧……",
                        waitTitle:"doing",
                        failure:function(form,action){
                            Ext.MessageBox.alert("失败",action.result.msg);
                            form.reset();
                        },
                        success:function(form,action){
                            Ext.MessageBox.alert("login ok",
                                          action.result.msg,
                                          function(btn,text){
											    var redirect = "要跳转的页面地址";
											    window.location=redirect;
											}
							);
                        }
                        
                        
                    }
                );
            }
            
        },{
            text: 'Cancel'
        }]
    });

    window.show();
});


3 action类(com.test.Login)
package com.test;

import com.opensymphony.xwork2.ActionSupport;

public class Login extends ActionSupport {
	
	/*返回给ext的成功标志,不要设成String类型的了*/
	private boolean success;
	/*返回给ext的处理结果*/
	private String msg;
	
	/*以parameter形式从表单获得userName字段*/
    private String userName;
    /*以parameter形式从表单获得pwd字段*/
	private String pwd;
	

	public boolean isSuccess() {
		return success;
	}

	public void setSuccess(boolean success) {
		this.success = success;
	}

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}

	public String execute() throws Exception {
		//System.out.println("-------用户名"+userName);
        if("gaoshun".equals(userName)&&"123".equals(pwd)){
        	setSuccess(true);
            setMsg("ok!!!!!!!!!!!!!!!!!!!!!!");
        }else{
        	setSuccess(false);
            setMsg("error!!!!!!!!!!!!!!!!!!!");
        }
		
		return SUCCESS;   
    }

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPwd() {
		return pwd;
	}

	public void setPwd(String pwd) {
		this.pwd = pwd;
	} 
}



4 struts配置文件struts_user.xml
<!DOCTYPE struts PUBLIC   
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   
     "http://struts.apache.org/dtds/struts-2.0.dtd">  
<struts>
     <!--注意这里的json-default是action能自动返回json字符的原因之一-->
    <package name="login" extends="json-default" namespace="/">  
        <action name="login" class="login">  
            <result type="json"/>  
        </action>  
        
    </package>
       
</struts>  


其它配置
applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
     xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:aop="http://www.springframework.org/schema/aop"  
     xmlns:tx="http://www.springframework.org/schema/tx" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx 
           http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> 
	

    <bean id="login" class="com.test.Login"></bean>
  

class="com.test.service.impl.UserDAOImpl"></bean>
    <!-- 日志时间打印 -->
	<aop:config>  
	    <!-- Spring 2.0 可以用 AspectJ 的语法定义 Pointcut,这
里拦截 service 包中的所有方法,和本示例没关系 -->
	    <aop:pointcut id="interceptorPointCuts"  
            expression="execution(* *..service..*.reg*(..))" />  
	    <aop:advisor advice-ref="methodTimeAdvice" 
	         pointcut-ref="interceptorPointCuts"  />  
	</aop:config>
</beans>


struts.xml
<!DOCTYPE struts PUBLIC   
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   
     "http://struts.apache.org/dtds/struts-2.0.dtd">  
<struts>
    <constant name="objectFactory" value="spring"></constant>  
    
    <include file="struts_*.xml"/>
</struts>  




web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" 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>openviewEnv</display-name>
	
	<filter>
	    <filter-name>struts2</filter-name>
	    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
	</filter>
	
	<filter-mapping>  
        <filter-name>struts2</filter-name>  
        <url-pattern>*.action</url-pattern>  
    </filter-mapping> 
	
	 
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
	<listener>  
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
          
    </listener>
    
    <jsp-config>
	    <taglib>
	           <taglib-uri>/struts-tags</taglib-uri>
	           <taglib-location>/WEB-INF/struts-tags.tld</taglib-location>
	    </taglib>
    </jsp-config>
    
    
</web-app>




引入的jar包
见附件图片

ext版本 3.3

文件路径结构见附件图片
  • 大小: 7.7 KB
  • 大小: 8.3 KB
分享到:
评论

相关推荐

    SpringStruts2Ext 简单登录示例

    SpringStruts2Ext 简单登录示例 注意在applicationContext.xml中数据库连接的端口与数据库名改为自己本机存在的,或改为系统默认的即,不能启动不了tomcat服务的。 &lt;bean id="dataSource" class="org.spring...

    ext+struts+spring小例子

    这个“ext+struts+spring小例子”是一个整合这三个技术的示例项目,用于实现一个图书管理应用。下面将详细阐述这三个框架的核心概念及其在项目中的作用。 EXT JS 是一个强大的JavaScript库,主要用于构建富客户端...

    一个基于Ext+Struts2+spring实现的级联分页示例程序源码例子

    "一个基于Ext+Struts2+Spring实现的级联分页示例程序源码例子"是一个很好的学习资源,它揭示了如何利用这三大框架来构建高效、灵活的Web应用。下面将详细解析这个项目的知识点。 首先,Ext是一个强大的JavaScript库...

    SSI+EXT (Struts2+Spring+Ibatis+Ext)

    **SSI+EXT(Struts2+Spring+Ibatis+Ext)**是一个常见的Java Web开发框架组合,用于构建高效、可扩展的企业级应用。这个框架集合了Struts2作为MVC框架,Spring作为依赖注入和事务管理工具,Ibatis作为持久层解决方案...

    Spring2.5 Struts2.0 TopLink Ext2例子

    标题 "Spring2.5 Struts2.0 TopLink Ext2例子" 涉及到的是一个集成使用四个关键开源框架的示例项目,这些框架在Web应用开发中扮演着重要角色。下面将详细介绍这些框架以及它们如何协同工作。 1. **Spring**(2.5...

    ssh实验代码 dwr ext3 struts2 spring3 json都有

    SSH(Struts2、Spring3、Hibernate)是一个流行的Java Web开发框架,用于构建高效、可扩展的企业级应用程序。DWR(Direct Web Remoting)则是一个JavaScript库,它允许在浏览器和服务器之间进行实时的、双向通信。...

    struts 2.0 + spring 2.5+ext

    Struts 2.0、Spring 2.5 和 Ext 是三个在Java Web开发中非常重要的框架,它们共同构建了一个高效且灵活的企业级应用系统。这个压缩包文件包含了使用这三个技术栈构建的系统的源代码,对于初级程序员来说,这是一个...

    struts2+spring+hibernate例子

    在这个"Struts2+Spring+Hibernate例子"中,开发者提供了一个完整的示例,旨在展示这三个框架如何协同工作,实现数据的增删改查(CRUD)操作,并且集成了Ext Grid,一个强大的前端展示组件。 **Struts2** 是一个MVC...

    一个ext+spring+hibernate+struts2做的系统---源代码

    标题中的"一个ext+spring+hibernate+struts2做的系统---源代码"表明这是一个基于Java技术栈的Web应用程序,使用了EXTJS(EXT)作为前端框架,Spring作为核心控制层,Hibernate作为持久化框架,以及Struts2作为MVC...

    struts2+ibatis+spring+ext完整项目含数据库

    这个"struts2+ibatis+spring+ext完整项目含数据库"的压缩包文件很可能是提供了一个集成这些技术的实际应用示例,帮助开发者理解和学习如何在实际项目中将它们结合起来。 **Struts2** 是一个基于MVC(Model-View-...

    struts2.1.8+spring2.5+hibernate3.2+ext3.0框架整合笔记(二)

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自在模型-视图-控制器(MVC)架构中承担不同的职责。Struts2作为控制器,负责处理HTTP请求;Spring提供依赖注入(DI)和面向切面编程(AOP),用于...

    Ext和SSH整合示例

    - **Spring和Struts2的整合配置**:需要在Spring的配置文件中指定Struts2的Action映射,以及实现Struts2的Action与Spring的Service层之间的整合。 整合ExtJS和SSH技术对于开发复杂的Web应用程序来说,可以大幅提升...

    图书管理系统(struts+hibernate+spring+ext)

    在整合这三个框架时,通常会使用Spring的Struts2插件来协调Struts与Spring之间的通信,使得Action实例可以在Spring容器中被管理。同时,Spring可以配置Hibernate的SessionFactory,以便在需要时创建Session实例。...

    ext JS+ssh的一个简单Dome

    Struts2接收并处理EXT JS发送的请求,Spring管理应用的组件和事务,Hibernate则负责与数据库的交互。 【压缩包子文件的文件名称列表】:drp 这个"drp"可能是项目名或者某个模块的缩写,具体含义需要根据实际内容来...

    struts+hibernate+spring+ext

    总结来说,"struts+hibernate+spring+ext"的组合代表了Java Web开发的一种常见实践,通过这些技术的集成,开发者可以构建出具有高效性能、良好架构和丰富用户体验的Web应用程序。如果你正在学习或使用这些框架,这样...

    Ext Struts2.0 Sprng2.0 Ibatis2.3 例子

    标题 "Ext Struts2.0 Spring2.0 Ibatis2.3 示例" 涉及的是一个集成开发环境,这个环境结合了三个重要的Java技术框架:Struts2、Spring和Ibatis,用于构建高效的企业级应用程序。让我们逐一深入探讨这三个框架及其在...

    JSP Ext spring级联分页程序.rar

    JSP Ext spring级联分页程序,JSP分页程序示例,结合漂亮的extjs框架实现。由于空间问题web-inf/lib里的jar文件未引入,本项目是在struts2 hibernate spring构架下的,所以需要引入这些jar包。

    图书管理系统(struts+hibernate+spring+ext)130221.zip

    《图书管理系统基于Struts+Hibernate+Spring+Ext的实现详解》 图书管理系统是软件工程领域中常见的项目,尤其在教学和实践中,它常被用作Java Web开发的示例。本系统采用Struts、Hibernate、Spring和Ext这四大技术...

    Ext+Spinrg dwr hibernate struts

    【标题】"Ext+Spring+DWR+Hibernate+Struts"是将这五个技术整合到一个项目中的示例,展示了如何在Java Web开发中利用这些框架进行高效协作。 【描述】提到的学习资源是一个关于EXT(Ext JS)和Direct Web Remoting ...

    ssh2+ext demo例子

    这个"ssh2+ext demo例子"显然提供了一个实际的示例,演示了如何将Struts2、Spring、Hibernate以及EXT.js这四个关键组件集成到一个项目中。下面将详细解释这些技术以及它们在项目中的作用。 首先,Struts2是基于MVC...

Global site tag (gtag.js) - Google Analytics