Struts2+ExtJS+Ajax 登录操作例子
2015-06-07 11:23
453 查看
看了好几篇关于这个问题的文章,有些写的清晰,有些写的乱七八糟,但是没一个例子能成功,全按照他们的代码写了,配置也改了,就是不行. 难道是版本问题?
了解了具体实现的流程后,我就打算自己写一个试试,结果还真成功了~ 感觉现在国内技术论坛良莠不齐,很多技术人写出来的文章都乱七八糟,很可能会影响到看过他们文章的人.因此我决定以后得好好写.......以防看过我例子的人被误导..哈哈...
执行流程:在jsp页面引用js代码(步骤2所示),当输入好账号密码后,点击Login,触发form的doAction事件.根据URL传到指定的Action.我这里的Action里有三个field:1.success;2.msg;3.User 作用分别为:1.返回success给前台做登录是否成功的判断;2.返回msg给前台使用;3.域模型. 我这里的Action是固定返回SUCCESS的(也可能有别的方法可以实现) 返回SUCCESS ,在配置文件里找到对应的result 它的类型为JSON,它会将信息response到客户端,最后客户端做判断,即可实现Ajax登录.
环境:MyEclipse2013 struts2.1 win8.1
步骤:
1.使用MyEclipse为project自动生成struts2.1.
2.前台代码:
3.作为bean的User的代码:
4.LoginAction代码:
5.struts.xml配置文件代码:
了解了具体实现的流程后,我就打算自己写一个试试,结果还真成功了~ 感觉现在国内技术论坛良莠不齐,很多技术人写出来的文章都乱七八糟,很可能会影响到看过他们文章的人.因此我决定以后得好好写.......以防看过我例子的人被误导..哈哈...
执行流程:在jsp页面引用js代码(步骤2所示),当输入好账号密码后,点击Login,触发form的doAction事件.根据URL传到指定的Action.我这里的Action里有三个field:1.success;2.msg;3.User 作用分别为:1.返回success给前台做登录是否成功的判断;2.返回msg给前台使用;3.域模型. 我这里的Action是固定返回SUCCESS的(也可能有别的方法可以实现) 返回SUCCESS ,在配置文件里找到对应的result 它的类型为JSON,它会将信息response到客户端,最后客户端做判断,即可实现Ajax登录.
环境:MyEclipse2013 struts2.1 win8.1
步骤:
1.使用MyEclipse为project自动生成struts2.1.
2.前台代码:
Ext.onReady(function() { Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = 'under'; var form = new Ext.FormPanel({ width : 300, height : 150, frame : true, buttonAlign : 'center', labelAlign : 'right', labelWidth : 80, defaultType : 'textfield', defaults : { width : 200 }, items : [{ fieldLabel : 'Username', name : 'user.username', allowBlank : false }, { inputType : 'password', fieldLabel : 'Password', name : 'user.password', allowBlank : false }], buttons : [{ type : 'submit', text : 'Login', handler : function() { if (form.getForm().isValid()) { form.form.doAction('submit', { url : 'loginAction', method : 'post', success : function(form, action) { Ext.Msg.alert('Tips', action.result.msg); }, failure : function(form, action) { Ext.Msg.alert('Tips', action.result.msg); } }) } } }] }) var win = new Ext.Window({ title : 'Login Window', items : form, modal : true, resizable : false, closable : false }) win.show(); });
3.作为bean的User的代码:
public class User { private String username; private String password; public User() { // TODO Auto-generated constructor stub } 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; } }
4.LoginAction代码:
package action; import bean.User; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { private boolean success; private String msg; private User user; @Override public String execute() throws Exception { // TODO Auto-generated method stub if (user.getUsername().equals("admin") && user.getPassword().equals("admin")) { this.success = true; this.msg = "welcome " + user.getUsername(); } else { this.success = false; this.msg = "login failed"; } return SUCCESS; } 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 User getUser() { return user; } public void setUser(User user) { this.user = user; } }
5.struts.xml配置文件代码:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="json-default"> <action name="loginAction" class="action.LoginAction"> <result type="json" /> </action> </package> </struts>
相关文章推荐
- 用struts2 完成一个简单的通讯录,实现增删改查,分页,文件上传(头像),表单验证(两种方法)
- 【j2ee spring】27、巴巴运动网-整合hibernate4+spring4(2)
- Java的反射机制
- 【j2ee spring】26、巴巴运动网-整合hibernate4(1)
- Java泛型的一些限制
- Java equals的一个坑
- javaweb生成验证码图片
- java中各种集合的用法和比较
- NetBeans java 编译时提示使用了未经检查或不安全的操作
- java 内部类整理学习
- eclipse在使用git
- maven 在eclipse 中配置下载源代码
- 使用JDBC进行数据访问【spring framwork】
- Eclipse在SVN安装步骤(两种)和使用方法
- 想要成为java高手的25个学习目标
- Acegi Security -- Spring下最优秀的安全系统(zhuan)
- Spring包下载地址
- SpringMVC访问静态资源的三种方式
- javabean总结
- JAVA序列化机制的深入研究