javascript方法: JSON.stringify(jsonObj), 将JSON对象转为字符串
项目中需要将复杂的对象从前端传到后端, 通过struts2的拦截器, 直接转换注入到action的属性中
比如 private List<Bean> test;
当然可以将data写成:
{ "test[0].note":"note a", "test[0].username":"username a",
"test[1].note":"note b", "test[1].username":"username b"
}
直接将obj做为data传给$.ajax不行, struts2没配置json拦截器也不行
javascript:
var jsonObj = {
"test":
[{"note":"note a", "username":"username a"},
{"note":"note b", "username":"username b"}
]
};
var str = JSON.stringify(jsonObj);
//console.log("result: "+str);
$.ajax({
url: "input.action",
contentType: 'application/json',
data: str,
type: "post",
datatype: "json",
success: function(data){
console.log(data);
}
});
bean:
public class Bean{
private String note;
private String username;
//getter and setter
}
action:
public class TestAction extends BaseAction{
private List<Bean> test;
public List<Bean> getTest() {
return test;
}
public void setTest(List<Bean> test) {
this.test = test;
}
public String input(){
System.out.println(test);
for(Bean bean: test){
System.out.println(bean.getNote());
}
return SUCCESS;
}
}
struts2:
<package name="test" namespace="/test" extends="json-default">
<interceptors>
<interceptor-stack name="def">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="json"></interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="def"></default-interceptor-ref>
<action name="input" class="testAction" method="input">
<result type="json"></result>
</action>
</package>
spring配置省略
分享到:
相关推荐
通过JavaScript(通常是jQuery库)创建异步请求,我们可以向Struts2 Action发送JSON数据,同时接收返回的JSON数据。例如,使用jQuery的`$.ajax`或`$.getJSON`方法,构建一个请求,将JSON对象作为数据发送,并设置...
总结来说,通过这种方式,我们可以利用AJAX向Struts2 Action传递JSON数组,实现异步数据交互。这在动态更新页面内容、处理表单提交等场景下非常有用。同时,使用JSON作为数据交换格式,使得前后端的数据交换变得更加...
当Action执行完毕后,可以返回一个JSON结果类型,Struts2会自动将Action的属性转换为JSON格式并返回给前端。 接着,我们讨论AJAX。AJAX是一种在不重新加载整个网页的情况下,能够更新部分网页的技术。在本资源中,...
本文将深入探讨如何使用jQuery的AJAX方法发送JSON对象数组到Struts2的Action,并在后端进行处理。 首先,我们了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...
例如,在前端使用jQuery等库发起AJAX请求,获取或发送JSON格式的数据,而在后端,Struts2框架则能够无缝处理这些JSON数据,从而构建出响应迅速、用户体验优秀的Web应用。 综上所述,Struts2与JSON的整合不仅提升了...
结合这三个组件,开发者可以构建出响应式、动态的Web应用,后端使用Struts 2处理业务逻辑,通过JSON Plugin返回JSON数据,前端利用jQuery通过AJAX请求获取这些数据,然后动态更新页面,提高用户体验。这种前后端分离...
在Struts2框架中,返回JSON对象是一种常见的数据传输方式,特别是在前后端分离的开发模式下。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。以下将...
然而,Struts2 JSON插件还提供了许多高级特性,如自定义JSON序列化策略、处理复杂类型、支持国际化等。在实际开发中,你可以根据项目需求灵活运用这些特性,提高开发效率并优化应用性能。 总的来说,Struts2的JSON...
在Struts2的Action类中,通过`HttpServletResponse`对象的`getWriter().print()`方法直接写入JSON字符串。这里创建了一个`JSONObject`和`JSONArray`,并将数据转换成字符串返回。注意,Action方法的返回类型应设为`...
Struts2提供了一些内置的支持来处理Ajax请求,例如使用`.struts2-json-plugin`,它可以自动将Action结果转换为JSON格式,便于前端解析。 Struts处理Ajax请求的方式多种多样,包括使用`@Action`注解指定Ajax动作,...
在Struts2与Ajax的交互中,后端返回的JSON数据需要在前端被`json2.js`解析成可操作的对象,这样才能在页面上动态更新内容。 接下来,我们讨论Struts2的`jsonplugin`。Struts2 JSON插件是官方提供的一个扩展,它使...
标题提到的"struts2 json传输对象文档"是指Struts2支持JSON格式的数据传输,使得Action类可以直接返回JSON对象,以便在客户端进行处理。这种功能极大地提高了Web应用的响应速度和用户体验,因为可以避免不必要的页面...
在这个"struts2+jquery执行ajax并返回json类型数据"的示例中,我们将探讨如何通过Ajax技术在后台Struts2框架与前端jQuery库之间交换JSON格式的数据。 首先,Struts2是一个强大的MVC(Model-View-Controller)框架,...
在Struts2框架中整合JSON,可以让应用更好地支持RESTful服务,使得前端与后端之间的交互更为便捷。为了实现这一整合,我们需要一些特定的库或jar包。"struts2-json-lib"压缩包就是为了满足这个需求而提供的,它包含...
在这个实例中,“整合jquery+json+struts2异步提交”是一个典型的前端与后端交互的示例,利用了jQuery的Ajax功能和Struts2框架处理JSON数据。下面我们将详细探讨这些技术及其相互配合的工作原理。 **jQuery** 是一...
Struts2支持JSON的处理,使得开发人员能够轻松地将Java对象转换为JSON格式,然后发送到客户端,或者将JSON数据解析成Java对象。下面我们将深入探讨Struts2集成JSON的相关知识点。 1. **Struts2 JSON插件**: ...
通过这种整合,开发者可以利用Struts2的强大功能处理后端业务逻辑,同时利用Ajax和JSON实现快速、无刷新的前端交互,提高用户体验。在实际开发中,还应注意安全问题,如防止XSS和CSRF攻击,以及正确处理JSONP跨域...
Struts2是一个非常流行的Java Web框架,用于构建可维护、可扩展且结构良好的应用程序。...深入研究源码可以提高开发效率,解决实际开发中遇到的问题,如处理复杂对象的序列化、优化JSON响应速度等。
本示例主要探讨如何在Struts2框架中实现从服务器向客户端返回JSON数据。 首先,让我们了解JSON的基本结构。JSON是一种数据交换格式,它以键值对的形式存储数据,类似于JavaScript对象。例如: ```json { "name": ...
使用`@Result`注解或struts.xml配置文件,可以指定一个结果类型为`json`,这样Struts2会将Action的返回对象转换成JSON格式并返回给前端。 **Ajax请求与JSON数据** 前端JavaScript代码使用XMLHttpRequest对象或现代...