本文主要是使用struts2 和 json 做一个简单的示例。
1、环境
struts2的基本配置就不赘述了,以下是此demo用到的所有jar包:
commons-fileupload-1.2.2.jar;
commons-io-2.0.1.jar;
commons-lang3-3.1.jar;
commons-logging-1.1.1.jar;
freemarker-2.3.19.jar;
javassist-3.11.0.GA.jar;
json-lib-2.3-jdk15.jar;
ognl-3.0.5.jar;
struts2-core-2.3.4.1.jar;
struts2-json-plugin-2.3.4.1.jar;
xwork-core-2.3.4.1.jar;
2、示例
struts2自带了json插件,所以在使用上不会像以前那么繁琐。
下面是Action的代码:
private DemoService demoService = new DemoServiceImpl();
private User user;
/**
* 执行方法
*/
public String show() throws Exception {
user = demoService.getUserById(userId);
return SUCCESS;
}
这里的user是一个标准的pojo对象,service通过user的ID返回一个对象。
然后是struts.xml代码:
<package name="demo" extends="json-default" namespace="/json">
<action name="*Action" class="com.demo.action.DemoAction" method="{1}">
<result type="json" />
</action>
</package>
在使用json传递对象时,包必须继承json-default,而非struts-default包,不然是无法识别type为json的返回结果的。
下面是前台页面demo.jsp的主要实现代码:
<script type="text/javascript">
function getJsonInfo() {
var val = $("#userId").val();
$.ajax({
type : "post",
url : "json/showAction",
dataType:"json",
data : {'userId':val},
success : function(data) {
$("#username").text(data.user.username);
$("#password").text(data.user.password);
$("#birthday").text(data.user.birthday);
$("#div_display").show();
}
});
}
</script>
通过ajax直接传递id到后台,获得user对象。
注:网上找资料,发现有些人通过一下的方式传递json:
public String show() throws Exception {
user = demoService.getUserById(userId);
JSONObject json = JSONObject.fromObject(user);
System.out.println("json is " + json);
return SUCCESS;
}
上面代码经测试,不知道是不是我的使用方法不对,打印语句无法执行到,而且,前台也无法得到数据。
还有就是,当result里面的Type是json时,它回默认把action里面所有序列化过的属性全部传递出去,而我们的业务类往往不需要这么做,所以:
@JSON(serialize = false)
public DemoService getDemoService() {
return demoService;
}
只要在get该属性的方法前面注明不序列化它就可以了。
如有错误请及时指出。
相关博文介绍: Struts2 json ajax动态显示列表
关于Struts2 json-plugin Date日期格式的处理
分享到:
相关推荐
总结来说,“Struts2+Json+Android简单实现”是一个典型的前后端交互示例,展示了如何利用Struts2作为服务端接口,通过JSON进行数据交换,最后在Android客户端进行数据展示和用户交互。理解并掌握这种技术栈对于构建...
这个简单的示例展示了Struts2、JSON和JQuery在实际应用中的协作方式。通过Struts2处理业务逻辑和验证,JSON作为数据交换格式,JQuery在客户端进行交互和验证,可以构建出响应快速、用户体验良好的Web应用。理解并...
ExtJS + Struts2 + Hibernate + JSON 登录程序是一个典型的Web开发示例,结合了前端JavaScript框架、MVC框架、持久层框架以及数据传输格式,实现了用户登录功能的前后端交互。下面将详细阐述这些技术及其在登录程序...
本篇文章介绍如何利用Struts2框架结合jQuery与JSON来构建一个简单的Ajax功能。 #### 一、环境搭建 1. **引入Struts2的JSON插件** 描述中提到的第一步是将Struts2的JSON插件加入到Web项目的lib目录下。这一步非常...
"Struts2+JSON+jQuery实现Ajax数据的存取"就是一个典型的示例,它结合了强大的MVC框架Struts2、轻量级的数据交换格式JSON以及高效的前端库jQuery,以实现网页上的无刷新数据交互。下面将详细介绍这三个技术及其在...
在这个"struts1+JSON实例"中,我们将深入探讨如何结合Struts1、JSON以及Ajax技术来实现一个功能丰富的学生选课系统。 首先,我们需要理解数据库设计的基础知识。在MySQL中,学生选课系统可能包括如下的表:`...
Struts2支持多种插件,使得与第三方库如JSON的集成变得简单。 Hibernate则是一个强大的ORM(对象关系映射)框架,用于简化数据库操作。它允许开发者使用Java对象而不是SQL语句来操作数据库,减少了数据库层的复杂性...
Struts2、jQuery、JSON和Ajax是Web开发中常见的技术栈,它们共同为构建动态、交互式的用户界面提供了强大的支持。下面将详细解释这些技术及其在登录示例中的应用。 Struts2是一个基于MVC(Model-View-Controller)...
Struts2、Spring、Hibernate、jQuery 和 JSON 是五个在IT行业中极为重要的技术组件,它们各自在Web应用开发中扮演着不同的角色。这篇文章将详细介绍这些技术的整合使用以及它们的功能。 首先,Struts2 是一个基于 ...
在"strutsdemo12"这个项目中,可能包含了一个使用Struts2、Ajax、jQuery和JSON的示例应用。开发者可能创建了Action类来处理请求,返回JSON数据,同时在前端使用jQuery的Ajax方法来发送请求并处理响应。这些文件可能...
综上所述,`@@@extjs+struts2+json plugin的例子`是一个综合运用`ExtJS`前端框架、`Struts2`后端框架以及`JSON`数据交换格式的Web应用示例。这样的组合可以构建出高性能、用户体验良好的企业级应用,同时利用`Struts...
5. **示例代码**:在提供的压缩包文件中,可能包含了一个简单的JSP页面,它包含了发送Ajax请求的JavaScript代码,以及一个Struts2 Action类,处理这个请求并返回JSON数据。你可以将这些文件导入到你的Web工程中,...
1、JSON0.34使用的是struts2附带的struts2-json-plugin-2.1.8.1.jar 2、db是mysql,名字为test,用户名root,密码空 3、com.morningstar.utility.WSUtility为调用WebService的客户端代码,在调用这个WebService返回...
在Android应用开发中,结合Struts2框架和JSON(JavaScript Object Notation)技术可以实现高效的数据交互。这个项目可能是为了创建一个使用Android客户端通过HTTP请求与服务器进行数据交换的示例。Struts2是一个强大...
### Struts2+Json+ExtJS分页技术详解 #### 一、技术背景与概述 在Web开发领域,实现高效的数据展示与交互是至关重要的。本文档将介绍如何使用Struts2框架结合JSON数据格式以及ExtJS前端库来实现动态分页功能。此...
以下是一个简单的示例代码片段: 1. Struts2 Action类: ```java public class UserAction extends ActionSupport { private List<User> userList; // getters and setters public String loadUsers() { /...
在文件列表中的"JsonTest"可能包含了测试代码或者示例,它可能是用来演示如何使用jQuery发送Ajax请求到Struts2.1 Action并处理返回的JSON数据。这部分代码可能包括了HTML页面(用于输入用户名和显示反馈)、...
"testJsonLib"可能包含一个简单的示例,演示如何通过Struts2的Action返回JSON数据,EXT的TreePanel接收并展示这些数据。通过学习这个示例,开发者可以更好地理解这三种技术的集成,提高开发效率,创建出更加动态和...
将Struts2与JSON结合起来,可以方便地在服务器端处理业务逻辑并返回JSON数据给客户端,比如AJAX请求,从而实现动态更新页面无需刷新整个页面。 首先,让我们深入了解一下Struts2如何与JSON进行集成: 1. **添加...