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

在struts2的Action中返回Ajax数据

阅读更多

 

 

 

author:z_xiaofei168

       如何在struts2的action中返回数据(普通字符串、图片)给ajax核心中的XMLHttpRequest对象。
       今天下午做项目,就是用户注册是时候,登录名是否唯一,我用的ajax验证,但怎么也不返回我想要的数据,纠结了老半天,后来百度了一下,response对象为空,写上这行代码就OK了,HttpServletResponse response = ServletActionContext.getResponse();当你输入完登录名之后把光标移到下面的时候。ajax就会通过异步交互实现页面的局部刷新。从数据库中能查到数据就返回一个苦的表情,如没有则返回一个笑的表情。
     下面和大家分享一下。

     先看效果,下图所示:

 

public String checkLogin() throws Exception {
		
		/** 获取response对象 */
		HttpServletResponse response = ServletActionContext.getResponse();
		/** 获取输出out对象 */
		PrintWriter out = response.getWriter();
		Customers cus = customersServiceImpl.checkLogin(entity);
		
		if (cus.getCname().equals(entity.getCname())) {
			out.print("1111");
		}else{
			
		}
		/** 这里返回的是null */
		return null;
	}

 

  

function $(id) {  
    return document.getElementById(id);  
}  
//getAjax请求  
//创建XMLHttpRequest对象  
function getXhr() {  
    var xhr;  
    try {  
        //IE浏览器  
        xhr = new ActiveXObject("Microsoft.XMLHTTP");  
    } catch (err) {  
        try {  
            //firefox opera 等其他浏览器  
            xhr = new XMLHttpRequest();  
        } catch (er) {  
            alert("您的浏览器不支持ajax技术的操作,请您升级.....");  
        }  
  
    }  
  
    return xhr;  
}  	
	
function checkuser() {

	var user = document.getElementById("cname").value;
	//获取xhr对象  
           var xhr = getXhr();  
                xhr.open("get","csdn/customers_checkLogin.action?entity.cname="+user,true);  
                xhr.send();  
                document.getElementById("spanUser").innerHTML = '<img src=images/wait.gif />';
                xhr.onreadystatechange = function (){  
    	if(xhr.readyState==4 && xhr.status==200){
    		if(xhr.responseText){
    			document.getElementById("spanUser").innerHTML = '<img src=images/cry.png />';
    		}else{
    			document.getElementById("spanUser").innerHTML = '<img src=images/smile.png />';
    		}
    	}
    }
}

 

  

  

<tr>

	<td class="td01">
		登录名<span class=" text_o">*</span>:
	</td>

	<td class="td02" style="width: 400px;">

		<div class="left">
			<input name="entity.cname" id="cname" type="text" size="30" onblur="checkuser()">
				<span id="spanUser"></span>
		</div>
	</td>

</tr>

 

13
9
分享到:
评论
17 楼 qingchenyuji 2012-02-25  
您好:我是在SSH架构下使用ajax实现异步刷新,但是我在javaaction代码中设置输出内容时:只能输出true或flase,换了其他变量或字符串,页面的ajax就收不到action传送来的数据,我用的不是servlet,用的时MVC三层架构。真心求教!
16 楼 make_miracles 2011-06-17  
返回true或flase在客户端设置图片展示不行吗,干嘛由后台返回图片。
15 楼 z_xiaofei168 2011-06-17  
venus224 写道
写着玩玩可以,在项目中还是用json吧!

呵呵,恩恩,那绝对是必须的。
14 楼 venus224 2011-06-16  
写着玩玩可以,在项目中还是用json吧!
13 楼 z_xiaofei168 2011-06-14  
liuningbo 写道
看不懂啊看不懂,

神马情况?
12 楼 liuningbo 2011-06-14  
看不懂啊看不懂,
11 楼 z_xiaofei168 2011-06-07  
QiuQiu0034 写道
为什么不用struts2的json插件呢,方便多了

恩,我知道,但我就想用下ajax,不想用json。尝试的做做。
10 楼 QiuQiu0034 2011-06-06  
为什么不用struts2的json插件呢,方便多了
9 楼 redish 2011-06-06  
佩服了,这个用法应该跟struts2没有任何关系吧
8 楼 kjj 2011-06-04  
你这样用struts和用servlet有啥区别
7 楼 z_xiaofei168 2011-06-04  
suhuanzheng7784877 写道
希望能对你有帮助~

谢了,我看看
6 楼 suhuanzheng7784877 2011-06-04  
希望能对你有帮助~
5 楼 suhuanzheng7784877 2011-06-04  
http://suhuanzheng7784877.iteye.com/blog/890578
4 楼 z_xiaofei168 2011-06-03  
Cross_Lee 写道
html 代码别用...[/java]

神马意思?是那个写代码前,那个前面写的吗?java代码或者是html之类的??如果是那个的话,我没注意,写错了
3 楼 Cross_Lee 2011-06-03  
html 代码别用...[/java]
2 楼 z_xiaofei168 2011-06-03  
vbvbxx 写道
还是基础不牢啊,偶也新手

呵呵,学的时间太长了,忘了,
1 楼 vbvbxx 2011-06-03  
还是基础不牢啊,偶也新手

相关推荐

    struts2ajax项目

    此外,为了更好地展示数据,可能还需要在Struts2中使用Interceptor(拦截器),例如,`params`拦截器用于将请求参数绑定到Action,`validation`拦截器负责验证表单数据,`workflow`拦截器管理Action的生命周期。...

    Struts2+Jquery+Ajax

    在Struts2中,Jquery可以与Ajax结合使用,实现页面的无刷新更新。 Ajax(Asynchronous JavaScript and XML)技术允许前端与后台进行异步通信,无需整个页面刷新,提高了用户体验。在Struts2框架下,我们可以使用...

    struts2+jquery执行ajax并返回json类型数据(源码)

    1. **创建Struts2 Action**:在Struts2中,你需要定义一个Action类,该类将处理Ajax请求。这个类通常包含一个或多个方法,每个方法对应一个特定的请求。你需要在这些方法中实现业务逻辑,并使用Struts2的`@Result`...

    AJAX 想Struts2后台传送Json数据并向前台返回Json格式的数据

    首先,让我们理解三种在Struts2中传递数据的方法: 1. **Struts2标签库**:Struts2提供了一套丰富的标签库,如`s:textfield`、`s:submit`等,可以直接在JSP页面中使用。这些标签能够帮助开发者轻松地处理表单提交,...

    struts2+jquery+ajax文件异步上传

    4. Struts2 Action接收并处理文件:在服务器端,Struts2的Action类接收到请求,解析文件数据,并进行验证和存储。 5. 返回响应:服务器处理完文件后,返回一个响应,告知前端文件上传的结果,如成功或失败。 6. 更新...

    Struts2+ajax+json返回list.docx

    本实例展示了如何在Struts2框架下,通过Ajax发送请求获取JSON数据,并将数据返回到JSP页面,以填充下拉列表(`&lt;s:select/&gt;`标签)。 1. **Struts2配置**: 在`struts.xml`配置文件中,我们需要定义一个Action,...

    struts2中使用ajax

    在Struts2中使用Ajax,可以实现页面的部分更新,提高用户体验,而无需每次操作都刷新整个页面。下面将详细介绍如何在Struts2中集成和使用Ajax技术。 1. **Ajax简介**: Ajax(Asynchronous JavaScript and XML)是...

    struts2的Ajax实现注册验证

    1. **Struts2配置**:首先,需要在`struts.xml`配置文件中定义一个Action,这个Action将处理Ajax请求。你需要设置一个特定的结果类型,比如`json`,这将使Struts2以JSON格式返回数据,非常适合Ajax调用。 2. **Ajax...

    struts2中AJAX实现

    7. **示例代码**:在提供的压缩包文件“struts2中实现AJAX的小实例”中,可能包含了一个简单的Struts2 Action、对应的JSP页面以及JavaScript代码。Action类可能有一个返回JSON数据的方法,JSP页面可能包含一个AJAX...

    struts2返回JSON数据的两种方式

    总结,Struts2中返回JSON数据有两种主要方式:一是通过`response.getWriter().print()`手动输出JSON字符串;二是利用Struts2的内置JSON插件,通过返回特定的属性和结果类型自动处理JSON。每种方法都有其适用场景,...

    Struts2 ajax json使用介绍

    在Struts2中,我们可以利用Ajax和JSON来实现数据的异步交互。 **一、引入所需库** 首先,为了在Struts2中使用Ajax和JSON,我们需要引入以下库: 1. Struts2的核心库:`struts2-core.jar` 2. Struts2的JSON插件:`...

    Struts2+Jquery+ajax+Json代码案例

    在Struts2中,开发者可以定义Action类,每个Action对应一个特定的用户请求,处理完成后返回结果到视图层。 **jQuery** 是一个流行的JavaScript库,简化了DOM操作、事件处理、动画和Ajax交互。在本案例中,jQuery...

    struts2+json+jquery实现ajax数据的存取

    在Struts2中,我们可以使用JSON插件来方便地序列化和反序列化Java对象为JSON格式,从而实现在Ajax请求中发送和接收数据。 **3. jQuery库** jQuery是一个高效、简洁的JavaScript库,它简化了HTML文档遍历、事件处理...

    struts2 + jquery +ajax 登录验证

    Struts2、jQuery和Ajax是Web开发中的三大关键技术,它们结合...以上就是Struts2、jQuery和Ajax在登录验证中的应用详解,它们共同构建了一个无刷新、响应快速的用户体验,同时也保证了后端的业务逻辑处理和数据安全。

    struts2+json+ajax整合例子(导入即可运行,附带详细教程)

    1. **配置Struts2**:首先,需要在Struts2的配置文件`struts.xml`中定义Action,设置返回类型为"json",这样Struts2就会自动将Action的返回值转化为JSON格式。 ```xml &lt;action name="ajaxAction" class=...

    struts2 action 返回json方法(一)源码

    本篇将详细讲解如何在Struts2中配置Action来返回JSON响应。 首先,我们需要了解Struts2的Result类型。默认情况下,Action会返回一个JSP页面作为结果,但通过配置,我们可以让Action返回JSON数据。这需要使用到一个...

    Struts2整合jQuery实现Ajax功能.doc

    在Struts2中,Action是处理用户请求的核心组件,它接收来自控制器的请求,执行相应的业务逻辑,并返回结果到视图层。jQuery则是一个流行的JavaScript库,极大地简化了DOM操作、事件处理以及Ajax交互等前端任务。 ...

    Struts2与AJAX

    当AJAX请求到达时,Struts2会自动将这个Action实例转换为JSON格式,并返回给客户端。 客户端的JavaScript可以使用XMLHttpRequest或jQuery等库发送AJAX请求,获取JSON数据,然后动态更新页面内容,实现无刷新的交互...

    使用struts2 和ajax进行传递json数据

    在Struts2中,可以通过配置Action来处理Ajax请求。Action类中的方法可以返回一个值,这个值可以映射到一个视图,也可以是JSON字符串。使用`@Result`注解或struts.xml配置文件,可以指定一个结果类型为`json`,这样...

    Jquery struts2 json 实现ajax

    3. **JSON结果映射**:在Struts2中,你可以使用`@Param`注解来将JSON对象的属性映射到Action的成员变量上,或者直接在Action中构建一个Map来接收所有的JSON数据。 4. **安全考虑**:使用Ajax和JSON时,要注意跨站...

Global site tag (gtag.js) - Google Analytics