struts2的json-default和struts-default的区别

http://www.cnblogs.com/lbangel/archive/2013/05/24/3096986.html

struts2的json plugin可以实现struts2和json的完美结合,由于本篇主要是介绍整合过程中遇到的问题,所以编程实现的方法这里就不重复了,具体可以参看struts2的官方文档:http://struts.apache.org/2.2.1.1/docs/json-plugin.html

我在struts.xml中有如下action定义:

<action name="product_group" class="customers.products" method="getGroups">    <result type="json">        <param name="root">groupList</param>    </result></action>

在上面的定义中,action的result的type为json,json plugin就可将action中定义为groupList的field自动转换为json格式数据,并返回给前端UI。

但在deploy后,启动tomcat时却报了There is no result type defined for type ‘json‘ mapped with name ‘success‘. Did you mean ‘json‘?的错误,因为struts2找不到json这个result type的定义。解决方法有下面两种:

1.将当前package的extends属性改为"json-default",即让当前package从josn-default继承而不是struts-default继承;

2.但如果当前package确实无法继承"json-default"的话,还可以在当前package中定义result-type,将json给加进去,如下:

<result-types>    <result-type name="json" class="org.apache.struts2.json.JSONResult"/></result-types>

两种方法的原理:

json这个result type是在json-default  (struts2-json-plugin-2.1.8.1.jar\struts-plugin.xml)里面定义的,内容如下(省去了xml和doctype标签):

<struts>    <package name="json-default" extends="struts-default">        <result-types>            <result-type name="json" class="org.apache.struts2.json.JSONResult"/>        </result-types>        <interceptors>            <interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/>        </interceptors>    </package></struts>

可见,name为"json"的result type是在json-default中定义的,所以,从json-default继承就可以使用json这个result。另外json-default还定义了一个name为"json"的interceptor。

另外,依json-default的定义来看,方法2中还应该再加一个json的interceptor定义才比较合适。

时间: 2024-10-29 07:36:10

struts2的json-default和struts-default的区别的相关文章

Struts2整合json

struts2整合json,需要一些jar包 如图所示: 这里介绍3中方法整合json 方法一 在视图资源中输出JSON数据 Action处理完用户请求后,将数据存放在某一位置,如request中,并返回视图,然后Struts将跳转至该视图资源,在该视图中,我们需要做的是将数据从存放位置中取出,然后将其转换为JSON字符串,输出在视图中. 1 /** 2 * 测试通过action以视图方式返回JSON数据 3 */ 4 public String testByJSP() { 5 User use

Struts2+JQuery+JSON实现异步交互

Struts2+JQuery+JSON实现异步交互,包括从后台获得单个值.对象.List和Map数据并从前台的表达中获取值把值进行序列化通过JQuery的$.ajax({})传到后台和后台的对象进行绑定. 第一步:在MyEclipse中创建JavaWeb工厂并把Struts2 和 json的jar包添加到工程中添加完成后的工程图是: 第二步:创建后台: 1. UserInfo实体类: Userinfo实体类代码: package struts2jsonjquery.test.entity; im

转载:深入了解Struts2返回JSON数据的原理及具体应用范例

早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,但苦于一直忙于工作难以抽身, 渐渐的也淡忘了此事.直到前两天有同事在工作中遇到这个问题,来找我询问,我又细细地给他讲了一遍之后,才觉得无论如何要抽一个小时的时间来写这篇文章, 从头到尾将Struts2与JSON的关系说清楚. 其实网络中,关于这个问题的答案已是海量,我当初也是从这海量的答案中吸收精华,才将“Struts2返回JSON数据”这个问题搞清楚的.但 是这些海量的答案,有一个共同

Struts2返回Json数据(使用Struts2插件)

这篇我将介绍如何使用Struts2的struts2-json-plugin.jar插件返回JSON数据. 一.其中主要步骤有: 1.将struts2-json-plugin.jar插件拷贝到项目的"/WEB-INF/lib"文件夹下: 2.编写Action类文件: 3.在struts.xml文件中配置这个Action,这个Action所在的"<package.../>"必须继承”json-default“,Action的Result类型为json,即ty

struts2对json的支持

方式一:自行构造json 1)导入jar包: xstream 或者 Jackson,推荐使用Jackson,效率高 2)引入struts2,书写配置文件 3)修改action配置,修改result返回的jsp页面,页面只留下${requestScope.json} 下面是我之前做的安卓服务器例子: action配置 <!-- 设置全局转发地址,专门发送JSON对象 --> 因为我做后台所有信息都是json格式,所以就用了全局设置 <global-results> <resul

Struts2 ajax json小例子

1:首先要解决jar包的问题,我最近一直用maven搭建项目,所以把pom.xml复制到这. 要有struts2的核心包,struts2和Json整合的包,以及json lib.刚才转载了一篇解决json lib老是报错的博客,问题完美解决. <dependencies> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-json-plugin</ar

Struts2返回JSON对象的方法总结

一.为什么struts2要返回json       如果是作为客户端的HTTP+JSON接口工程,没有JSP等view视图的情况下,使用Jersery框架开发绝对是第一选择.而在基于Spring3 MVC的架构下,对HTTP+JSON的返回类型也有很好的支持.但是,在开发工作中,对功能的升级是基于既定架构是很常见的情况.本人碰到需要用开发基于Struts2的HTTP+JSON返回类型接口就是基于既定框架结构下进行的. struts2和json的集成,是为了适应在action 处理完后需要向对端输

struts2 + ajax + json的结合使用,实例讲解

struts2用response怎么将json值返回到页面javascript解析,这里介绍一个struts2与json整合后包的用法. 1.准备工作 ①ajax使用Jquery:jquery-1.4.2.min.js ②struts2与json的依赖包:struts2-json-plugin-2.2.3.jar PS:版本可自己控制!~ 2.过程 ①引入json依赖包 ②编写action类 ③配置struts.xml ④编写页面 ⑤测试 3.实例 ① action类,JsonAction  注

json与java对象的转换,以及struts2对json的支持,实现ajax技术

这两天学的东西有点多,今天抽个时间写下来,以此作为激励,这两天学了json,ajax,jQuery 一.使用第三方的工具java转换为json类型 首先就是java类型转换为json对象,首先要导入第三方工具包: 准备导入第三方jar包: >commons-beanutils-1.7.0.jar >commons-collections-3.1.jar >commons-lang-2.5.jar >commons-logging-1.1.1.jar >ezmorph-1.0.

(转)Struts2返回JSON对象的方法总结

转自:http://kingxss.iteye.com/blog/1622455 如果是作为客户端的HTTP+JSON接口工程,没有JSP等view视图的情况下,使用Jersery框架开发绝对是第一选择.而在基于Spring3 MVC的架构下,对HTTP+JSON的返回类型也有很好的支持.但是,在开发工作中,对功能的升级是基于既定架构是很常见的情况.本人碰到需要用开发基于Struts2的HTTP+JSON返回类型接口就是基于既定框架结构下进行的. Struts2返回JSON有两种方式:1.使用S