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

Struts2 ext 登陆验证

阅读更多

文章分类:Web前端 主要功能 :使用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>

 包(附件)

 

 

  • 大小: 7.7 KB
  • 大小: 8.3 KB
分享到:
评论

相关推荐

    ext struts2 swfupload 跨域文件上传

    "ext struts2 swfupload 跨域文件上传"这个主题涉及到三个关键技术和概念:EXTJS(Ext JS)、Struts2以及SwfUpload,它们共同解决了Web应用中的跨域文件上传问题。 EXTJS是一种强大的JavaScript库,用于构建富...

    struts_ext_upload4文件上传

    Struts2.0 + Ext 实现的文件上传功能是一种常见的Web开发技术,它结合了Struts2框架的控制器层和Ext JavaScript库的前端组件。在Java Web应用中,文件上传通常用于用户向服务器提交文件,如图片、文档等。下面我们将...

    ext+struts2整合实现登陆

    在IT行业中,Web开发是一个重要的领域,而Struts2和EXT是两个常用的技术框架。本文将详细介绍如何将它们整合以实现一个登录功能。 Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它极大地...

    Ext_struts2

    5. 错误处理和验证:利用Struts2的拦截器实现全局错误处理和数据验证,将错误信息反馈给Ext JS的界面组件。 总的来说,Ext_struts2结合了Struts2的高效后端控制和Ext JS的强大前端展现,为开发者提供了一种构建现代...

    一个Struts2+Ext实现增删改查的实例

    Struts2是一个强大的MVC(模型-视图-控制器)框架,它在Java Web开发中广泛应用,用于构建可维护性和可扩展性高的企业级应用程序。ExtJS(现称为Sencha Ext JS)则是一个富客户端JavaScript库,用于创建交互式、数据...

    ext+struts2

    "EXT+Struts2"是一个常见的技术组合,用于构建企业级的Web应用程序,特别是涉及到文件上传功能时。EXT是一个强大的JavaScript库,它提供了丰富的用户界面组件和交互效果,而Struts2是Java EE平台上的一个MVC框架,...

    Ext+struts2项目

    4. 表单处理:EXTJS2的表单组件可以与Struts2的表单验证相结合,实现客户端和服务器端的双重验证。 5. 动态加载:EXTJS2的Ajax功能可以实现页面部分内容的异步加载,提升用户体验。 6. 页面布局:EXTJS2的布局管理...

    struts2+extjs4登录源码

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

    ext+struts2+json登陆方法借鉴.pdf

    Struts2是一个流行的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。...用户通过登录页面提交表单,Struts2 Action处理请求并验证身份,然后通过JSON返回响应,最后在客户端进行相应的页面更新。

    Spring2.5 Struts2.0 TopLink Ext2例子

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

    ext+struts2+json登陆方法.pdf

    在本案例中,我们看到一个使用Ext JS 2.2进行登录实现的方法,结合了Struts2和JSON来处理用户输入和响应。以下是这个登录方法的详细解释: 1. **依赖库**: - `Commons-logging-1.0.4.jar`: Apache Commons ...

    EXT+STRUTS2 经典例子

    3. **Struts2 拦截器**:Struts2 的拦截器允许在 ACTION 执行前后插入自定义逻辑,例如验证请求参数、记录日志等。在与 EXT 配合时,可能有专门的 JSON 拦截器来处理 JSON 格式的请求和响应。 4. **ACTION 类设计**...

    EXT-desktop+struts2

    在给定的场景中,"EXT-desktop+struts2" 提示我们这是一个使用 Struts2 作为后端控制层,EXT-desktop 作为前端展示层的项目。下面将详细介绍这两个技术及其结合使用的关键知识点: 1. **Struts2**:Struts2 是 ...

    ext3+struts2+hibernate+spring的CRUD+分页

    Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它简化了控制器层的开发,提供了一系列的拦截器和插件来处理用户请求,进行业务逻辑验证和结果转发。在CRUD操作中,Struts2可以很好地协调...

    一个JSP网盘(运用Struts+Ext上传技术)

    2. **Ext JS**: Ext JS是一个用于创建富互联网应用程序(RIA)的JavaScript库,提供了一系列的UI组件,如表格、表单、面板等,使得开发者可以构建出具有桌面级用户体验的Web应用。在文件上传网盘中,Ext JS可能被...

    一个myeclipse ext +struts的登陆的实例

    【标题】"一个myeclipse ext +struts的登陆的实例"揭示了这是一个基于MyEclipse集成开发环境,采用EXT库和Struts框架构建的登录功能的实战项目。EXT是一个强大的JavaScript库,用于构建富客户端应用程序,而Struts是...

    EXTJS4+STRUTS2+JAVA增删改查

    STRUTS2的核心是Action和Interceptor,Action处理用户的请求,Interceptor处理业务逻辑和数据验证。在EXTJS4与STRUTS2的集成中,STRUTS2作为后端服务器,接收EXTJS4发起的Ajax请求,执行相应的业务逻辑,并返回处理...

    EXTJS json struts2制作登陆窗口

    Struts2是一个Java Web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用程序。JSON(JavaScript Object Notation)是轻量级的数据交换格式,常用于服务器与客户端之间传递数据。本示例中,EXTJS、Struts2和...

    Struts2+Spring2.5+jdbc+Ext+json实例的lib包

    **Struts2** 是一个基于MVC(模型-视图-控制器)设计模式的Java Web框架,它提供了强大的请求处理、表单验证和页面导航功能。Struts2的核心特性包括拦截器、插件架构、模板引擎和与各种视图技术的集成,如JSP和...

    ext如何与struts2整合

    Struts2 与 ExtJS 的整合是将这两个强大的框架结合在一起,以构建高效、交互性强的Web应用程序。ExtJS 是一个用于创建富客户端界面的JavaScript库,而Struts2 是一个基于MVC模式的Java Web框架,两者结合可以提供...

Global site tag (gtag.js) - Google Analytics