本文转载自:http://www.javake.com.cn/frontend/js/20130922/6785.html作者:eric
貌似有点小bug,有时登录成功后不能自动跳转到首页,需要刷新一下,把struts.xml配置中配置为<result type="redirect">就没问题了,希望有高手能告诉哪写的不对,暂时只能用这种方式解决了
完整代码参考:http://www.luchg.com/resource/showResource_5.html
如果发现代码有什么问题欢迎提出
这次主要是实现了登录功能以及登录验证,到此后台管理系统的框架已经搭建差不多了,剩下的工作就是对数据的操作了
有不清楚的可以结合前几篇文章,这篇是对前面几个功能的整合:
登录功能:http://blog.csdn.net/lc448986375/article/details/8025305
自定义拦截器进行登录验证:http://blog.csdn.net/lc448986375/article/details/8027432
后台管理系统之二:http://blog.csdn.net/lc448986375/article/details/8019731
首先,在后台管理系统之二的版本上加了登录功能,可以参考考http://blog.csdn.net/lc448986375/article/details/8025305,需要修改的是登录成功后页面的跳转:
buttons:[{ text:'登录', width:80, height:30, handler:function(){ //获取当前的表单form var form = this.up('form').getForm(); //判断否通过了表单验证,如果不能空的为空则不能提交 if(form.isValid()){ //alert("可以提交"); form.submit({ clientValidation:true, waitMsg:'请稍候', waitTitle:'正在验证登录', url:'user_login', success:function(form1,action){ //登录成功后的操作,跳转到toIndex.action window.location.href = 'toIndex' }, failure:function(form,action){ Ext.MessageBox.show({ width:150, title:"登录失败", buttons: Ext.MessageBox.OK, msg:action.result.msg }) } }) } } },{ text:'取消', width:80, height:30, handler:function(){ //点击取消,关闭登录窗口 var form = this.up('form'); form.close(); } }]
其他的并没有改变,登录成功后跳转到LoginAction.java的toIndex.action:
package action; import java.io.ByteArrayInputStream; import java.util.Map; import model.Admin; import org.apache.struts2.interceptor.SessionAware; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport implements SessionAware { //接收name,必须与js中的textfield的name相同,否则取不到值 private String name; private String password; //得到页面传来的验证码 private String CheckCode; private Map session; //用于告诉前台时候登录成功 private boolean success; public String login(){ //得到生成的验证码 String strCode = (String) session.get("randomCode"); System.out.println("UserAction>randomCode:"+strCode); if("admin".equals(name) && "admin".equals(password) && CheckCode.toLowerCase().equals(strCode.toLowerCase())){ //做个小例子,没有连接数据库 session.put("nowUser", new Admin(1,"admin","admin",1)); success = true; }else{ success = false; } return SUCCESS; } public String toIndex() { return SUCCESS; }
配置文件struts.xml:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="admin" namespace="/" extends="json-default"> <interceptors> <interceptor name="loginInterceptor" class="interceptor.LoginInterceptor"></interceptor> </interceptors> <global-results> <result name="toLogin">/login.html</result> </global-results> <action name="user_login" class="action.LoginAction" method="login"> <result type="json" /> </action> <action name="toIndex" class="action.LoginAction" method="toIndex"> <interceptor-ref name="loginInterceptor"></interceptor-ref> <result>/index.html</result> </action> <action name="getCode" class="action.YanZhengMaAction" method="getCode"> <result type="stream"> <param name="contentType">image/jpeg</param> <param name="inputName">bais</param> <param name="bufferSize">2048</param> </result> </action> </package> <package name="json" extends="json-default"> <interceptors> <interceptor name="loginInterceptor" class="interceptor.LoginInterceptor"></interceptor> </interceptors> <global-results> <result name="toLogin">/login.html</result> </global-results> <action name="users" class="action.UserAction" method="users"> <interceptor-ref name="loginInterceptor"></interceptor-ref> <result type="json" /> </action> </package> </struts>
跳转到:index.html中,然后就是后台管理之二:http://blog.csdn.net/lc448986375/article/details/8019731的内容了
接下来需要对用户登录进行验证,虽然后台管理只有一个页面,但是可以在地址栏中直接输入请求进行操作,所以我们需要对每个用户的请求进行验证,所以在每个action中都要配置自定义的拦截器,我不知道有没有更好的方式,如果有知道的希望能交流一下。
为了防止用户直接进入index.html页面,我把这个页面放入了WEB-INF下面,如果有更好的方法也希望能提出建议,学习一下
下面是登录页面效果图:
相关推荐
在本文中,我们将深入探讨如何使用ExtJS 4与Struts2框架实现文件上传功能。ExtJS是一个强大的JavaScript库,提供了丰富的用户界面组件,而Struts2是Java Web开发中的一个MVC框架,用于处理后端业务逻辑。下面,我们...
ExtJS是一个JavaScript库,提供了丰富的用户界面组件和强大的数据处理能力,而Struts2则是一个基于MVC设计模式的Java Web框架,用于简化应用的开发流程。将这两者整合可以创建功能强大且用户体验优秀的Web应用程序。...
整合Struts2、ExtJS和JSON的步骤通常包括以下几个部分: 1. **设置Struts2的JSON插件**:在Struts2项目中,需要添加struts2-json-plugin库,然后在struts.xml配置文件中启用JSON结果类型。 2. **创建Action类**:...
标题“Struts2与extjs整合例子”表明我们将探讨如何将这两个技术结合在一起,以实现后端与前端的高效协作。在实际项目中,这样的整合可以利用Struts2的强大处理能力和ExtJS的出色用户界面,创建出功能丰富且用户体验...
在整合 Struts2 时,你需要确保添加了必要的依赖库,例如 `struts2-json-plugin-2.1.8.jar`,这个插件允许 Struts2 将结果直接转换为 JSON 格式,便于与 ExtJS 通信。 配置方面,你需在 `web.xml` 文件中设置 ...
SSH整合是指Spring、Struts和Hibernate这三大Java开源框架的集成应用。SSH是Java Web开发中的常见技术栈,用于构建高效、可维护的企业级应用程序。在这个例子中,我们将深入探讨如何利用SSH整合来实现一个登录功能,...
"Hibernate+Spring+Struts2+ExtJS整合开发实例"就是一个典型的Java Web应用程序开发案例,它将四个关键组件结合在一起,以实现高效、模块化的后端和前端功能。 **Hibernate** 是一个流行的Java对象关系映射(ORM)...
Struts2是一个基于MVC(模型-视图-控制器)设计模式的Web应用框架,用于构建动态、交互式的Web应用。Struts2.18是该框架的一个稳定版本,提供了一系列增强的特性,如拦截器、插件体系、强大的结果类型和模板引擎。在...
整合Struts2和ExtJS的主要目的是利用Struts2的强大后端处理能力,结合ExtJS的前端交互性和用户体验,打造高性能、易维护的Web应用。下面将详细介绍整合过程中的一些关键知识点: 1. **Struts2与ExtJS的通信方式**:...
**EXTJS整合Struts2的步骤:** 1. **引入依赖**:在项目中引入EXTJS的JavaScript库,以及Struts2的Struts2-EXTJS插件。 2. **配置Struts2**:在struts.xml中配置EXTJS相关的Action,指定返回JSON格式的结果,以便...
在本项目中,"漂亮的Extjs+struts2实现联动下拉"是一个集成这两个技术的实例,实现了在Web应用中动态更新下拉框选项的功能。 联动下拉框是一种常见的交互设计,常见于需要根据前一个选择项动态加载后一个选择项的...
4. **Struts2结果类型配置:** 配置Struts2的结果类型,例如`json`,使得Action可以直接返回JSON数据,方便ExtJS解析。 5. **Ajax通信:** ExtJS的Ajax请求通常是异步的,通过`Ext.Ajax.request`方法发起,参数包括...
标题 "Extjs4.0+struts2简单MVC 实例demo" 提供了一个关于使用ExtJS 4.0框架与Struts2 MVC框架结合开发应用程序的实际示例。这是一个常见的前端与后端集成方案,旨在展示如何在Java Web项目中有效地处理用户界面和...
在整合Struts2和ExtJS时,通常会通过Ajax通信来实现实时的用户交互。Struts2的JSON插件可以方便地将Action的结果转换为JSON格式,供ExtJS的组件消费。同时,ExtJS可以通过Store和Proxy组件来管理和加载由Struts2返回...
ExtJS4、Spring、Struts2和iBatis是Java Web开发中常用的技术栈,它们在构建企业级应用中发挥着各自的关键作用。下面将详细解释这些技术以及它们如何协同工作。 1. ExtJS4:这是一款强大的JavaScript库,用于构建富...
总的来说,整合Struts2与Extjs是一种有效的实现前后端数据交换的方法,能够提高开发效率,优化代码结构,同时也保持了应用的可扩展性和灵活性。在实际项目中,根据具体需求选择合适的技术栈进行整合是至关重要的。
文章可能通过一个实际项目或示例,详细解释了如何将ExtJS的Grid Panel与Struts 2通过JSON进行数据交互,帮助读者理解这两种技术的整合过程。学习这些内容有助于提升Web应用的用户体验,实现数据的实时更新和交互。
通过研究这些源文件,你可以详细了解如何整合ExtJS4和Struts2以实现文件上传功能。 总之,结合ExtJS4的前端交互能力和Struts2的后端处理能力,你可以构建出一个高效且用户体验良好的文件上传系统。通过理解这两个...
总结来说,"ssh+extjs4整合开发"涉及到的技术栈是Java后端开发的强大组合,结合了Spring的灵活性、Struts2的MVC架构以及Hibernate的对象关系映射,再加上EXTJS4的富客户端能力。这种整合使得开发者能够构建出高效、...