`
hanwei59
  • 浏览: 35665 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

这是否是个捷径?Ajax利用Struts转发到的jsp作为数据传回

    博客分类:
  • Java
阅读更多

最近做毕设发现Ajax提交到Struts后在Action里不需要out.write来构造html或xml了。因为可以就当没有Ajax存在一样去写Action,XMLHttpRequest就能获得Action所转发到的jsp生成的html。说起来很抽象,还是看代码:

login.jsp:

 

<%@ page language="java" pageEncoding="gbk"%>
<html> 
<head>
<title>JSP for LoginForm form</title>
<script type="text/javascript">
	function GE(a){return document.getElementById(a);}
	function createXMLHttpRequest() {
  		var xmlhttp;
		if (window.ActiveXObject) {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		else if (window.XMLHttpRequest) {
			xmlhttp = new XMLHttpRequest();
		}
		return xmlhttp;
	}
		function login(){
			var xmlhttp = createXMLHttpRequest();
			if(xmlhttp)
			xmlhttp.onreadystatechange=function(){
				if(xmlhttp.readyState==4){
					if(xmlhttp.status==200){
				      	GE('msg').innerHTML=xmlhttp.responseText;
				      	//alert(xmlhttp.responseText);
				   	}else{
				   		GE('msg').innerHTML=xmlhttp.statusText;
				   		//alert(xmlhttp.statusText);
				   	}
				}else{GE('msg').innerHTML="正在提交数据...";}
			};
			xmlhttp.open('POST','login.do?name='+GE('name').value+'&password='+GE('password').value,true);
			xmlhttp.send(null);
		}
</script>
</head>
<body>
<h2 align="center">Ajax应用实例: 登录模块</h2>
<form action="login.do" method="post">
			帐号 : <input type="text" id="name" name="name"/><br>
			密码 : <input type="password" id="password" name="password"/>
<br><input type="button" onclick="login()" value="Ajax提交"><br><br>
<input type="submit" value="普通提交">
</form>
<div id="Layer1">
<div id="msg"></div>
</div>
</body>
</html>

 

  struts-config.xml:

 

<action-mappings >
<action
      attribute="loginForm"
      input="/login.jsp"
      name="loginForm"
      path="/login"
      scope="request"
      type="com.neusoft.struts.action.LoginAction">
<forward name="loginSuccess" path="/loginSuccess.jsp" />
</action>

LoginAction.java:

 

public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws IOException {
		//LoginForm loginForm = (LoginForm) form;
		String name = request.getParameter("name");
		request.setAttribute("name", name);
		System.out.println(name);
		return mapping.findForward("loginSuccess");
	}

 

  loginSuccess.jsp

 

  <body>
<h2 align="center" style="font-size: 20px;color: blue;">
    登录成功!</h2><br>
    
    getParameter:<%=request.getParameter("name") %>
    getAttribute:<%=request.getAttribute("name") %>
</body>
 

就这样,login.jsp中的xmlhttp.responseText得到的字符串就是loginSuccess.jsp所生成的页面的源代码。

于是在Action里根本不需要构造html或xml或json了,只需把得到数据放到request里,然后转发到jsp(loginSuccess.jsp),在jsp里取出数据,显示;但这个jsp将自身源码以字符串形式传给Ajax页面(login.jsp)。多个jsp,但不需要手工构造 html或xml或json等了。

不知道这是不是个传递数据的捷径呢?

 

 

分享到:
评论
4 楼 crazy.j 2008-05-13  
一直都是这么干的 jsp页面里也可以写json,xml
3 楼 hanwei59 2008-05-13  
didiluck 写道
嗯,这个没什么的新鲜的啊,组织xml是为了给数据一个说明。
xml有具体的标准,A和B可以制定出通用的xml数据标准。
如果返回的数据比较复杂的话,还是需要xml来组织的。


可能是我返回的数据还不是太复杂,就是数组迭代出的表格,表格的行数是变化的,如果返回xml或json,需要先构造xml/json,再在页面里用javaScript来解析生成表格,比较麻烦,所以我就按那种方法了,反而比较简单。
2 楼 agapple 2008-05-13  
完全可以通过AJAX请求应用,返回格式可以是 JSON/XML
1 楼 didiluck 2008-05-13  
嗯,这个没什么的新鲜的啊,组织xml是为了给数据一个说明。
xml有具体的标准,A和B可以制定出通用的xml数据标准。
如果返回的数据比较复杂的话,还是需要xml来组织的。

相关推荐

    何为捷径?文章-需求.docx

    例如,云计算的发展使得企业可以快速部署服务,节省硬件投资,这就是一种利用风向的"捷径"。同样,利用开源软件和框架可以极大地加速开发进程,减少重复劳动。 哲人的观点则强调了持续努力的重要性。在IT行业中,...

    配置转发捷径将流量引入TE隧道示例.zip

    本示例“配置转发捷径将流量引入TE隧道”是针对这一目标的一个具体实践,主要涉及到了流量工程(Traffic Engineering,简称TE)和隧道技术。下面我们将详细探讨这两个关键知识点。 首先,流量工程(TE)是网络管理...

    JSP程序设计书本源代码(第2版)

    对于初学者,这是一条从理论到实践的捷径;对于有经验的开发者,这些源码提供了深入研究和优化代码的机会。在学习过程中,结合书中理论与代码实践,能够有效提升JSP开发技能,为成为专业的Java Web开发者打下坚实...

    精彩编程与编程技巧-如何将程序建立成“启动”文件夹的捷径?...

    ### 如何将程序建立成“启动”文件夹的捷径? 在计算机编程中,有时候我们需要让某些应用程序在系统启动时自动运行。这不仅方便用户快速访问常用软件,还能提高工作效率。本文将详细介绍如何通过编程手段将指定的...

    使用转发捷径把流量引入TE隧道的配置

    标题中的“使用转发捷径把流量引入TE隧道的配置”是指在IP网络中,通过特定的策略将数据流量引导到设定的流量工程(Traffic Engineering,简称TE)隧道中的一种技术。这种技术通常用于优化网络资源的利用,提高网络...

    AJAX新手快车道

    - **JavaScript与DOM操作**:AJAX利用JavaScript来处理服务器返回的数据,并通过DOM(Document Object Model)对网页元素进行实时修改,使得用户操作与反馈更加流畅。 - **XMLHttpRequest对象**:这是AJAX技术的...

    jsp框架 直接下载即可

    5. **转发与重定向**:在完成数据库操作后,JSP框架可能需要将用户重定向到另一个页面(如显示操作结果),这可以通过RequestDispatcher的forward()或sendRedirect()方法实现。 6. **异常处理**:为了保证程序的...

    葵花宝典JAVAWEB开发捷径

    5. **JDBC(Java Database Connectivity)**: JDBC是Java访问数据库的标准API,允许开发者连接到各种类型的数据库,执行SQL语句,实现数据的增删改查。 6. **EJB(Enterprise JavaBeans)**: EJB是Java EE(企业版...

    通过486个例子掌握Web开发捷径

    "通过486个例子掌握Web开发捷径"是一本旨在帮助初学者快速上手JavaScript编程的实践教程。本书通过大量的实例,让读者能够在实践中学习,从而更深入地理解JavaScript的核心概念和技术。 JavaScript实例自学手册中的...

    开启通向云计算的捷径

    Hadoop作为云计算领域的一个核心组件,为大数据处理提供了一种高效、可扩展的解决方案。"开启通向云计算的捷径"这个主题,显然是为了引导读者深入理解Hadoop及其在云计算中的应用。 Hadoop是基于Java的开源框架,由...

    透明桥接模式:如何实现合法IP与虚拟IP共捷径?

    Qno侠诺透明桥接模式适合不想更动原有合法IP的PC设定与架构,想快速实现合法IP与虚拟IP均可通过侠诺安全路由访问Internet。企业可依据实际需求来选择适用的模式,让您的企业网络运行更加通畅便利!

    AJAX_新手快车道.pdf

    通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新,这意味着无需重新加载整个网页即可更新部分网页内容。这种能力使得网页操作更加流畅,用户体验得到显著提升。 ### AJAX:不仅仅是技术,更是理念...

    菜鸟到高手的修炼捷径

    根据给定文件信息,我们可以提炼出以下几个重要的知识点: 1. 编程高手的成长之路:编程高手的成长并...这本书为学习者提供了一条学习捷径,通过理解计算机科学的基础知识和编程思想,快速入门并深入探索编程的精髓。

    android 超捷径 源码

    android 超捷径 源码android 超捷径 源码

    【卷一/共两卷】AJAX实战pdf高清版90M

    7.4 Ajax数据流的访问策略 7.4.1 设计安全的Web层 7.4.2 限制对Web数据的访问 7.5 小结 7.6 资源 第8章 性能 8.1 什么是性能? 8.2 JavaScript的执行速度 8.2.1 测定应用时间的艰难方式 8.2.2 使用Venkman性能分析器 ...

    Labview压装机程序源码:经典框架搭配研华数据采集卡,实现高效数据存储与条形码追溯,工控人员必备参考捷径,Labview项目经典压装机程序源码,经典框架,研华数据采集卡,m y s Q L存储数据

    Labview压装机程序源码:经典框架搭配研华数据采集卡,实现高效数据存储与条形码追溯,工控人员必备参考捷径,Labview项目经典压装机程序源码,经典框架,研华数据采集卡,m y s Q L存储数据,条形码追溯,是工控人员...

    AJAX——新手快车道

    通过这一视角,新手可以学习到如何系统地理解技术、构建知识体系,以及如何有效利用现有资源和社区。此外,认识到与专家交流的重要性,因为他们的指导和帮助是通往快速掌握技术的捷径。 #### 快车道与专家指导 ...

    JavaScript自学手册通过486个例子掌握WEB开发捷径

    本书"JavaScript自学手册通过486个例子掌握WEB开发捷径"旨在帮助初学者和有经验的开发者通过实际操作深入理解JavaScript的核心概念。下面我们将详细探讨这本书中可能涵盖的一些关键知识点。 1. **基础语法**: 书中...

    Delphi7 数据库编程学习捷径

    《Delphi7 数据库编程学习捷径》是一本专为Delphi初学者和数据库开发者设计的教程,旨在帮助读者快速掌握使用Delphi7进行数据库应用开发的技能。Delphi7作为 Borland 公司的经典集成开发环境(IDE),在当时因其高效...

    Ajax新手快车道

    通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新,这意味着无需重新加载整个网页即可更新部分网页内容,极大地提升了用户体验。 然而,AJAX的意义远不止于此。它代表了一种更加先进、标准化、和谐...

Global site tag (gtag.js) - Google Analytics