本文主要是使用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日期格式的处理
分享到:
相关推荐
@@@java+struts2+ext+json(完整的示例程序)实现CRUD
extjs tree + json+struts2示例源代码extjs tree + json+struts2示例源代码
java+struts2+ext+json(完整的示例程序)实现CRUD,很不错,推荐下载
1、JSON0.34使用的是struts2附带的struts2-json-plugin-2.1.8.1.jar 2、db是mysql,名字为test,用户名root,密码空 3、com.morningstar.utility.WSUtility为调用WebService的客户端代码,在调用这个WebService返回...
Extjs Tree + JSON + Struts2 示例源代码
1、JSON0.34使用的是struts2附带的struts2-json-plugin-2.1.8.1.jar 2、db是mysql,名字为test,用户名root,密码空 3、com.morningstar.utility.WSUtility为调用WebService的客户端代码,在调用这个WebService返回...
SSH整合示例(详情见我博客专栏)之前的博客我们总结了spring基础、spring分别整合struts2、hibernate、mybatis等,今天我们来同时整合下 struts、spring、hibernate,也就是所谓的 ssh 。 整合流程: 1 首先整合...
Jquery+struts2上传图片,制作进度条等示例,还有Jquery+Json+Struts实现Ajax技术,还有图形处理技术等,虽然很少,但都有重点突出,由于我也是学习,所以代码不是很简洁,对想学习交流的朋友非常合适
json示例json示例json示例json示例json示例json示例json示例json示例json示例json示例json示例json示例json示例
Struts2的Json示例,使用Maven构建,导入请前先安装maven。
struts2 + jsonplugin google自动提示 ajax示例
struts2整合json,示例说明文档
struts2和json的一个小示例,下载后可运行,适合学习json的初学者
Web2.0的随波逐流,Ajax那是大放异彩,Struts2框架自己整合了对Ajax的原生支持(struts 2.1.7+,之前的版本可以通过插件实现),框架的整合只是使得JSON的创建变得异常简单,并且可以简单的融入到Struts2框架中,...
struts2-json-plugin 示例
一个很简单的示例,struts2.2.3配置struts-json的例子和解释.
NULL 博文链接:https://deony2jacob1314.iteye.com/blog/1826725
JQuery处理JSON课堂示例(Struts1.2).rar