struts2的json plugin可以实现struts2和json的完美结合,由于本篇主要是介绍整合过程中遇到的问题,所以编程实现的方法这里就不重复了,具体可以参看struts2的官方文档:http://struts.apache.org/2.2.1.1/docs/json-plugin.html。
如果無法继承json-default,网上说了好多方法,什么重写json-default的文件,其实最简单的是把jsonplugin-0.34.jar复制到WEB-INF的lib下,问题解决!
若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定义才比较合适。
如果無法继承json-default,网上说了好多方法,什么重写json-default的文件,其实最简单的是把jar包复制到WEB-INF的lib下,问题解决!
分享到:
相关推荐
1,需要把jsonplugin-0.33.jar拷贝到Web-INF/lib目录下....2,在struts2.1.6的配置文件中进行配置,就是返回的类型是json,并且要为JSON数据单独创建一个Package,继承的包不再是struts-default,而是json-default
通过 struts.xml、struts.properties 或 web.xml 改变 struts.convention.default.parent.package 常量的值,让支持 REST 风格的 Action 所在的包默认继承 rest-default,而不是继承默认的 convention-default 父包...
3. 配置Struts2的`struts.xml`文件,为每个方法指定一个返回类型为JSON的Action。这里需要继承`json-default`包,因为它包含了处理JSON的配置。 ```xml <package name="default" namespace="/json" extends="json-...
Struts2 返回 JSON 对象 Struts2 是一个基于 MVC 模式的 Java Web 应用程序框架,它提供了一个强大的机制来处理用户的请求和响应。在 Struts2 中,返回 JSON 对象是通过 JSON 插件来实现的,这个插件提供了一个可以...
在这个例子中,我们看到一个名为"user"的包,它继承自"struts-default",表示使用Struts2的默认配置。"login"动作与类"org.ext.service.loginAction"关联,当用户提交登录表单时,Struts2会调用这个动作类来处理请求...
在`struts.xml`中,创建一个名为`default`的包,继承自`json-default`,这意味着所有在这个包下的Action都会默认返回JSON格式的数据。对于每个Action,你可以定义一个`<action>`元素,指定Action名称、类和方法。...
在本案例中,我们看到一个使用Ext JS 2.2进行登录实现的方法,结合了Struts2和JSON来处理用户输入和响应。以下是这个登录方法的详细解释: 1. **依赖库**: - `Commons-logging-1.0.4.jar`: Apache Commons ...
- `<package name="user" extends="struts-default">` 创建了一个名为“user”的包,继承自“struts-default”包,包含默认的配置。 - `<action name="login" class="org.ext.service.loginAction">` 定义了一个名...
在Struts的配置文件`struts.xml`中,需要声明一个继承自`json-default`的包,这将启用JSON插件。然后定义一个Action,其结果类型为`json`: ```xml <package name="ajax" extends="json-default"> <action name="...
在Struts2的配置文件(如struts.xml)中,定义一个名为`myajax`的包,继承自`json-default`,以启用JSON支持。然后配置一个Action,名为`myajaxAction`,其类映射为`actions.MyAjaxAction`,并指定结果类型为`json`...
2. **Struts.xml**:定义了一个名为 "example" 的包,并扩展了 "json-default" 包,配置了一个名为 "login" 的动作,该动作返回 "map" 结果类型,类型为 JSON,通过 "result" 参数将 "Login" 类中的 "result" 属性...
创建一个Struts2 Action类,例如`UserAction`,它继承自`ActionSupport`,并包含与数据库交互的属性和方法: ```java public class UserAction extends ActionSupport { private UserBean user; private int ...
Struts2的JSON插件是实现前后端数据交互的重要工具,尤其在当今Web应用程序中,JavaScript与服务器端的异步通信越来越普遍。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时...
Struts2是一款强大的Java Web框架,它为开发者提供了一种结构化的MVC(Model-View-Controller)开发模式,使得Web应用的构建更加简洁、高效。REST(Representational State Transfer)是一种架构风格,用于构建可...
这通常通过下载Struts2的核心库和其他必要的jar文件完成,如struts2-core、struts2-convention-plugin、struts2-json-plugin等,并将它们放入项目的WEB-INF/lib目录下。此外,也可以使用Maven或Gradle等构建工具来...
- `struts2-json-plugin.jar`或`struts2-jackson-plugin.jar`:用于支持JSON格式的数据交换,通常在AJAX或RESTful服务中使用。 3. **配置与初始化**: - `struts-default.xml`和`struts-plugin.xml`是Struts2的...
Struts2是一个强大的Java web应用程序框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了构建可维护性、可扩展性极高的应用的解决方案。此压缩包文件"struts-2.2.3"包含了Struts2框架的源代码,这将...
在Struts2的配置文件(如struts.xml或struts-default.xml)中,定义Action的映射: ```xml <result type="dispatcher">/helloWorld.jsp ``` 此外,Struts2提供了丰富的插件和拦截器,如结果类型插件、验证插件...
2. **配置文件**:主要包括`struts-default.xml`和自定义的`struts.xml`,这些XML文件定义了Action类、结果类型、拦截器栈等配置。在`struts.xml`中,你可以声明Action类、指定URL与Action的映射关系,以及设置结果...
- struts2-json-plugin.jar(如果需要JSON支持) - servlet-api.jar(如果你使用的是非容器运行环境) - jstl.jar 和 standard.jar(用于JSTL标签库) 2. **配置Web.xml**:在`web.xml`部署描述符中,你需要配置...