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" name="code"><?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" 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>
?包(附件)
?
?