struts2的json插件返回值是一个json对象,如果用jquery的ajax方法很容易取得,但是在使用别人的控件(未使用jquery)或者不使用jquery来操作数据时,就会遇到问题了。此时我们用原始的ajax方式来获取。如下图,看起来是一个json对象,实际上不是,只是一个字符串而以,因为我们用的是new XMLHttpRequest()。responseText来取值的。所以还必须转化一下,郁闷许久之后在一个哥们的博客上发现了该方法(感谢这位哥们,其实自己看书的时候也注意到了该方法,只是没放在心上,靠,经常出现这种问题),方法如下:
在字符串两端再加上括号然后eval就ok了
var gethttp = function()
{
try{ return new XMLHttpRequest(); }catch(e){}
try{ return new ActiveXObject('Msxml2.XMLHTTP'); }catch(e){}
try{ return new ActiveXObject('Microsoft.XMLHTTP'); }catch(e){}
return null;
};
var oh = gethttp();
var retxt = oh.responseText
retxt=eval('('+retxt+')')//这句最重要,上面可以忽略
换句话说,即使你拼接出符合json格式的字符串,还需要用eval(),才能真正变成json对象
- 大小: 22.3 KB
分享到:
- 2009-04-14 09:52
- 浏览 2538
- 评论(2)
- 论坛回复 / 浏览 (2 / 3658)
- 查看更多
相关推荐
例如,在前端使用jQuery等库发起AJAX请求,获取或发送JSON格式的数据,而在后端,Struts2框架则能够无缝处理这些JSON数据,从而构建出响应迅速、用户体验优秀的Web应用。 综上所述,Struts2与JSON的整合不仅提升了...
在Struts2中,我们可以使用Struts2的JSON插件将Action的返回值转换为JSON格式,方便前端JavaScript进行处理。 最后,JQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理、动画制作以及Ajax交互。在本例中...
2. **Struts2 JSON插件**:Struts2提供了一个JSON插件(`struts2-json-plugin.jar`),它允许我们将Action的返回值直接转换为JSON格式,便于前后端数据交换。这个插件简化了原本需要手动序列化对象到JSON字符串的...
客户端通常使用JavaScript或Ajax来处理JSON响应,例如使用jQuery的`$.ajax`或`fetch` API。可以解析JSON数据并动态更新页面内容。 9. **最佳实践**: - 尽量减少在JSON中传递的数据量,避免不必要的性能开销。 -...
1. **配置Struts2**:首先,需要在Struts2的配置文件`struts.xml`中定义Action,设置返回类型为"json",这样Struts2就会自动将Action的返回值转化为JSON格式。 ```xml <action name="ajaxAction" class=...
7. **JQuery/AJAX调用**:在前端,可以使用JQuery的AJAX方法向服务器发送请求,获取Struts2 Action返回的JSON数据,然后动态更新DOM元素。 8. **安全性考虑**:在使用JSON和Struts2交互时,需要注意防止JSON ...
Struts2是一个流行的Java web框架,它主要用于构建和...总的来说,Struts2结合JSON插件提供了一种高效的方式来处理Web应用中的异步数据交互,使得后端开发可以更专注于业务逻辑,而前端则可以便捷地获取和处理数据。
- **AJAX请求**:使用jQuery或其他库的AJAX功能发送异步请求,获取JSON数据并更新页面。 6. **安全考虑**: - **Content-Type**:确保HTTP响应的`Content-Type`设置为`application/json`,以指示浏览器处理响应...
2. **JSON处理**:Action方法的返回值会被自动转化为JSON格式,前提是你的Struts2已经配置了JSON插件。这个插件将Java对象转化为JSON字符串,以便于发送回客户端。 3. **Ajax调用**:在客户端,通常使用JavaScript...
这需要使用到一个名为`json`的结果类型,它是由Struts2的JSON插件提供的。 1. **安装JSON插件** 在使用JSON功能前,确保已添加Struts2 JSON插件到项目依赖中。如果是Maven项目,可以在pom.xml中添加如下依赖: ``...
- **Ajax请求**:使用jQuery库发送异步AJAX请求,例如`$.ajax()`或`$.getJSON()`,与Struts2的Action进行通信。 3. **jQuery的使用**: - **基本概念**:jQuery是一个轻量级的JavaScript库,简化了DOM操作、事件...
在Action类中,你可以定义一个结果类型为"json"的返回值,然后将你需要转换为JSON的对象放入value栈,Struts2会自动处理这个对象并将其转换为JSON字符串。 例如,如果你要返回一个单个字符,你可以在Action类中定义...
Struts2和JSON的结合是Web开发中常见的一种技术组合,尤其在构建动态、数据交互丰富的应用程序时。本文将深入探讨这两个技术如何协同工作,以及它们的优势和具体实现方法。 首先,让我们理解这两个核心概念: 1. *...
### Struts2 + jQuery 实现Ajax交互的关键技术与实践 #### 概述 在Web开发领域,使用Struts2框架结合jQuery实现Ajax交互是一种常见的做法。这种组合不仅可以提高Web应用程序的响应速度,还能显著提升用户体验。...
这里,我们指定`result type`为`json`,并使用`param`标签告诉Struts2将`message`属性作为JSON响应的根对象。 在客户端,我们可以使用JavaScript(通常结合jQuery库)编写Ajax请求代码: ```javascript $.ajax({ ...
除此之外,Struts2的JSON插件还支持其他高级特性,如过滤、排除某些属性不包含在JSON响应中,以及自定义JSON序列化器等。通过深入学习和实践,你可以更好地掌握Struts2与JSON的结合使用,提升Web应用的开发能力。
4. **JSONResult处理**:当Struts2接收到Ajax请求并执行完Action后,会使用JSONResult将Action的返回值转换成JSON格式,并发送回客户端。开发者可以通过`params`、`excludeProperties`等属性控制哪些参数被序列化到...
值得注意的是,随着技术的发展,如今很多开发者可能会选择Spring Boot或React等现代框架进行开发,但了解如何在Struts 2中使用JSON和AJAX仍然是有价值的知识,尤其是对于维护旧项目或者理解Web应用基础架构时。