日期:2014-05-16  浏览次数:20315 次

struts2整合json及extjs
struts2是在webwork2基础上开发的新一代MVC框架,但是struts1与struts2是完全不同的概念。如果需要对struts2进行

更详细的学习请参考其他相关资料,在这里只提下struts2与extjs的结合,而不是涉及具体技术细节。

怎么让struts2也生成extjs需要的json数据格式呢?

struts2通过插件方式提供了对json的支持,介绍一个插件:jsonplugin.jar

下载地址:

http://code.google.com/p/jsonplugin/downloads/list

*注意:

1)、struts.xml配置如下(例):

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>

<!-- 编码设置 -->
<constant name="struts.i18n.encoding" value="GBK"/>
<!-- 相关配置 -->
<package name="json" extends="json-default">
   <action name="extjs" <result type="json"/>
   </action>
</package>
</struts>

//这里action的返回类型result type设置为json,这种返回类型是由json提供插件支持的,这种类型不是struts2默认支持

的返回类型


2)、有时测试过程出现如下错误信息:

java.lang.NoSuchMethodError: com.opensymphony.xwork2.ActionContext.get(Ljava/lang/String;)Ljava/lang/Object;
at com.googlecode.jsonplugin.JSONResult.execute(JSONResult.java:157)...

原因:版本不对应

jsonplugin0.32.jar对应struts2.0.x

jsonplugin0.33.jar对应struts2.1.x

一定要注意版本问题!