struts 2如何与JSON整合 我有这样一个想法,后台返回给前台都以json串形式的对象,不知道用struts2的标签如何与其整合在一起?不知谁有这方面的经验? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 导入 struts2-json-plugin 包 <!-- 使用json一定要继承json-default--> <package name="json" namespace="/json" extends="json-default"> <action name="jsontest" class="test.json.LoginAction"> <result type="json"><!-- 返回类型为json,这样会自动转化为json字符串 --> <param name="root">jsonObj</param><!--jsonObj为test.json.LoginAction下的对象,get/set方法 --> </result> </action> </package> ajax的话,后台方法都用void,也就是不用返回,然后write.println("json字符串"),在前台用AJAX获取字符串 整合步骤:1>.使用jar包: struts2-json-plugin-x.x.x.jar2>.struts.xml配置: 1/.package继承json-default包。 2/.action请求结果类型为json。 嗯,非常感楼上提供思路。后台的搭建基本上是可以理解了,现在我想知道前台的struts2的标签该如何引用结果集? 即前台向后台要传JSON后台返回前台也要是JSON. 嗯,感谢楼上提供思路,后台这块可以理解了。我想具体了解一下,前台struts标签提交时如何组织成JSON,后台返回的结果集为JSON前台是如何解析的? 1.导入json包2.struts.xml配置文件中<package name="common" extends="struts-default,json-default"> <action name="" class="" method="{1}"> <result type="json" name="json"></result> </action></package> 后台整合LZ已经会了,前台可以有很多实现方法。前台我是结合prototype.js实现的1.标记事件<s:a href="javascript:doJoson();">json执行</s:a>2.js代码<script type="text/javascript"> function doJoson () { var url = "请求名.action"; var options = {method:"post",onComplete:doComplete,asynchronous:true}; new Ajax.Request(url, options); } function doComplete (request) { var result = eval("(" + request.responseText + ")"); alert(result.name); }</script>注:alert(result.name)中name是Action对应的属性,有get/set方法。 前台可以使用jquery来实现function getUserList() { $("#result").html(""); $.ajax({ url:'json/returnList.action', type:'post', dataType:'json', success:function(data){ $.each(data.userList,function(i,value){ $("#result").append("第"+(i+1)+"个用户") .append("编号:"+value.id+"") .append("用户名:"+value.name+"") .append("密码:"+value.password+"") .append("<br/>"); ; }); } }); }data里装的多个person对象,person哟id,name和password 如果前台用了Ext就可以不用Struts2标签了、前台用Ext显示就Ok了。但是如果Struts.xml写成这样的话:<package name="extjs" namespace="/" extends="json-default"> <action name="login" class="ActionName"> <result type="json"></result> </action></package> 就需要加入struts2-json-plugin-2.1.81.jar这样可以实现功能但是struts.xml配置就和平时用的不一样了看起来有点不爽了用json-lib.jar可以实现Ext和Struts2的整合用这中方法struts.xml是可以不用继承json-default的两种方法都可以实现了就看个人想用那种了··· DWR调servlet的怪问题,用于验证码生成。 Firefox 乱码,非一般的,大家有没遇到这种情况? 有关-Web服务器-的一些疑问 javascript 如何一次删除table的多个tr? 很奇怪的一个问题,大家帮忙给看看怎么回事 JSP页面不能完全显示从数据库读出来的记录!!各位大虾救救 appet如何才能访问mysql数据库????急急!!! 如何在jsp代码中得到下拉列表中的值?大侠\斑竹快来救命啊! JSP 如何读取表单中的回车符? response.sendRedirect()中文问题 流媒体服务器 java在线考试系统中随机组卷的算法,,,,求救!!
<!-- 使用json一定要继承json-default-->
<package name="json" namespace="/json" extends="json-default">
<action name="jsontest" class="test.json.LoginAction">
<result type="json"><!-- 返回类型为json,这样会自动转化为json字符串 -->
<param name="root">jsonObj</param><!--jsonObj为test.json.LoginAction下的对象,get/set方法 -->
</result>
</action>
</package>
struts2-json-plugin-x.x.x.jar
2>.struts.xml配置:
1/.package继承json-default包。
2/.action请求结果类型为json。
后台的搭建基本上是可以理解了,现在我想知道前台的struts2的标签该如何引用结果集?
2.struts.xml配置文件中
<package name="common" extends="struts-default,json-default">
<action name="" class="" method="{1}">
<result type="json" name="json"></result>
</action>
</package>
<s:a href="javascript:doJoson();">json执行</s:a>2.js代码
<script type="text/javascript">
function doJoson () {
var url = "请求名.action";
var options = {method:"post",onComplete:doComplete,asynchronous:true};
new Ajax.Request(url, options);
} function doComplete (request) {
var result = eval("(" + request.responseText + ")");
alert(result.name);
}
</script>注:alert(result.name)中name是Action对应的属性,有get/set方法。
$("#result").html("");
$.ajax({
url:'json/returnList.action',
type:'post',
dataType:'json',
success:function(data){
$.each(data.userList,function(i,value){
$("#result").append("第"+(i+1)+"个用户")
.append("编号:"+value.id+"")
.append("用户名:"+value.name+"")
.append("密码:"+value.password+"")
.append("<br/>");
;
});
}
});
}data里装的多个person对象,person哟id,name和password
但是如果Struts.xml写成这样的话:
<package name="extjs" namespace="/" extends="json-default">
<action name="login" class="ActionName">
<result type="json"></result>
</action>
</package> 就需要加入struts2-json-plugin-2.1.81.jar这样可以实现功能但是struts.xml配置就和平时用的不一样了看起来有点不爽了
用json-lib.jar可以实现Ext和Struts2的整合用这中方法struts.xml是可以不用继承json-default的
两种方法都可以实现了就看个人想用那种了···