struts2提供了新的<s:>标签来提高对ajax的支持,而struts1.x的标签不支持AJAX(因为没有ID属性,无法取得DOM),一直让struts1.x+ajax用户不爽,网上提供了一些方法,但我感觉有些莫名其妙。在研究登录表单的SSH整合中,运用jquery的$.ajax提交表单时候,发现可以与struts1.x的*.do完美结合。
说完美结合,原因是对于已经配置好的SSH,无需修改任何配置文件,只要修改对应action和jsp页面,最后插入自建的js文件即可。
修改jsp页面:
1.去掉struts的<html>和<bean>标签,用传统的<form>、<input>、<button>改写。
2.增加<div>显示验证信息。
3.增加javascript 文件引用,引用jquery库文件和自建的js文件。
代码如下:(login.jsp,已经由struts1.x生成LoginAction,配置文件都不用改。
<%@ page language=”java” pageEncoding=”UTF-8″%>
<html>
<head>
<script type=”text/javascript” src=”js/jquery-1.2.6.js”></script>
<script type=”text/javascript” src=”js/validate.js”></script>
<title>JSP for LoginForm form</title>
</head>
<body>
<form action=”login.do” id=”form” method=”post”>
username :
<input type=”text” id=”username” name=”username” />
<br />
pasword :
<input type=”text” id=”password” name=”password” />
<input type=”button” value=”AJAX提交” id=”ajaxsubmit” name=”ajaxsubmit” />
<input type=”submit” value=”普通提交” />
<div id=”message” name=”message”></div>
</form>
</body>
</html>
LoginAction修改ActionForward的execute(),把LoginForm窗口类相关去掉。用request.getParameter取得参数。其他都不用改。
代码如下:
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws IOException {
//LoginForm loginForm = (LoginForm) form;
String username=request.getParameter(”username”);
String password=request.getParameter(”password”);
if (petDAO.isValidUser(username, password)){
return mapping.findForward(”indexForward”); //成功则返回index,在xml中配置
}else{
return mapping.getInputForward(); //失败则返回本页面,xml配置
}
}
自建的验证js文件:
$(document).ready(function() {
$(”#ajaxsubmit”).click(function() {
login();
return false;
});
});
function login() {
var user = $(”#username”).val();
var pass = $(”#password”).val();
if (user == “”) {
$(”#message”).text(”请输入用户名”);
$(”#username”).focus();
return false;
}
if (pass == “”) {
$(”#message”).text(”请输入密码”);
$(”#password”).focus();
return false;
}
$.ajax({
url : “login.do”,
type : “post”,
dataType : “html”,
data : “username=” + user + “&password=” + pass,
beforeSend : function() {
$(”#message”).html(”登录中,请稍后…”).fadeIn(100);
},
success : function(data) {
$(”#form”).html(data); //这里是关键,上面action返回的是页面,所以这里用form
},
complete : function() {
$(”#message”).fadeOut(”200″);
}
}
);
}
最后执行效果,令人满意。即拥有了ajax异步效果,又不妨碍struts的mvc功能。这里是最基本的应用,更多的功能可以在此基础上扩展。
jquery真是个好东西啊。难怪google,baidu等大门户网站都在用。
分享到:
相关推荐
Struts1.x与Struts2.x是两种非常流行的Java Web应用程序框架,它们都由Apache软件基金会开发,旨在简化MVC(Model-View-Controller)架构的实现。然而,两者在设计哲学、功能特性以及实现方式上存在显著差异。以下是...
在Struts1.x中,Action是核心组件之一,它必须继承自org.apache.struts.action.Action类,并且需要覆盖execute方法。Action对象由框架创建和管理,每一个HTTP请求都对应一个Action实例。然而,在Struts2.x中,Action...
Struts1.x是一个经典的Java Web框架,由Apache软件基金会维护,它在2000年代中期至晚期广泛应用于企业级应用开发。这个框架基于Model-View-Controller(MVC)设计模式,帮助开发者构建结构清晰、可维护性强的Web应用...
标题"Struts2.X+Hibernate3.X+Spring2.5 整合"指的是将这三个框架的特定版本(Struts2.X,Hibernate3.X,Spring2.5)集成到同一个项目中,实现高效的企业级应用开发。这种整合能够充分利用各个框架的优势,使开发者...
Struts1.x是一款经典的Java Web开发框架,由Apache软件基金会维护,主要用于构建MVC(Model-View-Controller)架构的应用程序。本系列教程是针对初学者的全面指导,旨在帮助学习者快速掌握Struts1.x的核心概念和使用...
将Struts1.x与Freemarker整合,可以实现更灵活的视图层渲染,提高开发效率。下面我们将详细探讨这一整合过程及其相关的知识点。 1. **Struts1.x框架介绍** Struts1.x是Apache软件基金会的开源项目,主要负责处理...
在这个"struts1.x和mysql整合的登陆例子"中,我们将探讨如何将Struts1.x的控制器能力与MySQL数据库的存储功能相结合,实现一个用户登录系统,并且包括用户的基本操作:增加、删除、修改和查询。 首先,登录功能的...
Struts1.x是一款经典的Java Web框架,由Apache软件基金会开发并维护。它是MVC(Model-View-Controller)设计模式的实现,极大地简化了Java Web应用程序的开发过程。本资源集合包含了所有最新的Struts1.x项目应用,为...
Struts1.x是一个经典的Java Web框架,它在20世纪末至21世纪初被广泛使用,用于构建基于MVC(Model-View-Controller)架构的Web应用。本示例将探讨如何使用Struts1.x实现一个简单的登录功能。首先,我们需要理解...
1. **整合目标**:本文档的目标是将 Struts2.x、Spring3.x、Hibernate4.x 与 DWR、jquery2.x 和 easyUI1.3.x 进行集成,以构建一个功能齐全且高效的 Web 开发环境。 2. **jQuery 版本选择**:为了兼容性和性能考虑...
freemarker与struts 1.x 结合,生成html 在http://blog.csdn.net/chen1255 的web中有详细描述关于freemarker与struts1.x的结合
Struts 2.x权威指南(第3版)
Struts1.x 是一个MVC(Model-View-Controller)框架,主要用于处理Web应用程序的业务逻辑和用户交互,而Hibernate则是一个对象关系映射(ORM)框架,它的主要任务是简化数据库操作,将Java对象与数据库表进行映射,...
1. **Spring**:Struts1.x可以与Spring框架整合,Spring负责管理Action的依赖,提供AOP(面向切面编程)支持。 2. **Hibernate**:结合Hibernate,Struts可以实现持久层操作,提高数据访问效率。 3. **Struts-...
1. **配置Struts2**:首先,我们需要在Struts2的配置文件(struts.xml)中设置Action,让其能够返回JSON格式的数据。这通常涉及到添加一个特定的Result类型,如`json`,并配置相应的Action类来生成JSON响应。 2. **...
这个网上书店示例对于学习和理解Struts1.x框架的MVC工作原理,以及如何整合jQuery和Ajax以实现动态交互是非常有价值的。尽管代码可能未完全改造,但它提供了一个实际的起点,让学生或开发者能够进一步实践和优化。
Struts1.x_action 是一个与Apache Struts 1.x框架相关的资源包,它包含了用于构建基于Java的企业级Web应用程序的组件。Struts是MVC(Model-View-Controller)设计模式的一个实现,它使得开发者可以更有效地管理和...
该例子已使用一年多,绝对完全整合,达到理想效果。至今还有很多朋友问到关于struts2.2.x+json+jquery 的整合,觉得还是有必要将自己收集的拿出来,免得让大家走弯路,避免浪费不必要的精力与时间。
Spring、Struts1.x 和 Hibernate 是经典的 Java Web 开发框架,它们的整合是构建企业级应用的常见方式。这三个框架分别负责不同的职责:Spring 提供依赖注入和事务管理,Struts1.x 负责视图和控制层,而 Hibernate ...
Struts2.x是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它在Struts1的基础上进行了很多改进和增强,旨在提供更高效、更灵活的Web应用程序开发。Struts2.x的主要目标是简化开发过程,提高代码可...