struts2-core-2.1.8.1.jar与jsonplugin-0.34.jar 配合使用会出现异常,以前的项目中jsonplugin-0.34.jar 配合 struts2-core-2.1.6.jar 使用不会出现异常。
解决方法:
去掉jsonplugin-0.34.jar;
使用struts2-json-plugin-2.1.8,json-lib-2.3-jdk15,ezmorph-1.0.6,jakarta commons-lang 2.4,jakarta commons-beanutils 1.7.0,jakarta commons-collections 3.2,jakarta commons-logging 1.1.1
注:不少人使用时会提示net.sf.ezmorph.xxx找不到,是缺ezmorph.jar;
使用JSONArray jsonObject = JSONArray.fromObject(xxx);等时,还需要引入json-lib-2.3-jdk15.jar
示例:
1、struts.xml配置
a、直接继承json-default包
<package name="default-package" abstract="true" extends="json-default">
<!-- 中间定义其他元素 -->
</package>
b、添加以下元素到struts.xml文件中(其实下面的xml代码也就是struts2-json-plugin-2.1.8包中struts-plugin.xml的内容
这里只是把它提出来放到struts.xml文件中,避免继承包)
<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>
2、action配置
注意下面的result类型type 以及参数root,田type指定结果类型为json,而参数root用来指明将action中的哪个参数作为json串返回给客户端
<package name="tableInfoOperAction" extends="json-default">
<action name="showColumns" class="com.***.action.TableInfoOperAction" method="showColumns">
<result name="success" type="json">
<param name="root">columnStr</param>
</result>
</action>
</package>
3、Action代码
public String showColumns() throws Exception{
try{
if(tableName!=null&&!"".equals(tableName)){
colList=dbDataOperation.getColumnsByTableName(tableName);
}
JSONArray jsonArr=JSONArray.fromObject(colList);
columnStr=jsonArr.toString();
}catch(Exception e){
e.printStackTrace();
logger.warn(e.getMessage());
}
return SUCCESS;
}
4、JS代码
<script type="text/javascript">
function showColumns(){
alert($("#tabId").val());
$.ajax({
url:"***/showColumns.do?tableName="+$("#tabId").val(),
type:"GET",
cache:false,
dataType:"json",
error:function(XMLHttpRequest, textStatus, errorThrown) {
alert("出错啦!:" + XMLHttpRequest.status + "-" + textStatus);
},
success:function(json){
alert(json);
alert("okay");
}
});
}
</script>
分享到:
相关推荐
总结来说,"struts2.1.8+json+jquery"的组合展示了如何在Java Web开发中利用Struts2处理业务逻辑和HTTP请求,通过JSON高效地传输数据,以及利用JQuery在前端实现动态页面效果。这种技术栈可以提高开发效率,简化前后...
在这个项目中,`struts2.1.8+json+jquery1.3实现ajax`,开发者可能做以下步骤: 1. 配置Struts2:首先,需要在Struts2的配置文件(struts.xml)中配置Action,指定返回JSON类型的结果。这通常通过在Action类的方法上...
Struts2.1.8是Apache Struts框架的一个版本,它是一个基于MVC(Model-View-Controller)设计模式的Java Web开发框架。这个版本在Web应用开发中被广泛使用,因为它提供了强大的动作调度、结果处理和插件扩展机制。在...
JQuery1.4.2+Struts2.1.8+JSON0.34+Spring2.5.6+Hibernate3.5+XFire1.2.6整合实例(已上传) 1、JSON0.34使用的是struts2附带的struts2-json-plugin-2.1.8.1.jar 2、db是mysql,名字为test,用户名root,密码空 3、...
在Struts2.1.8版本中,对JSON(JavaScript Object Notation)的支持已经相当成熟,允许开发者实现服务器与客户端之间的数据交换,特别是在AJAX(Asynchronous JavaScript and XML)交互中。 JSON是一种轻量级的数据...
这个插件允许开发者在Struts 2中轻松地创建能够返回JSON的Action,使得前端(通常使用JavaScript库如jQuery)可以获取到JSON数据并进行进一步处理。 现在我们来详细讨论这两个库在实际应用中的作用: 1. **json-...
在本案例中,Struts2.1.8与AJAX结合,用于从服务器获取数据并动态更新视图,同时涉及了XML、GSON和jQuery JSON三种数据交换格式。 XML(Extensible Markup Language)是一种标记语言,常用于数据交换,特别是在前后...
【jQuery与Struts2整合详解】 在Web开发中,jQuery是一个强大的JavaScript库,它简化了JavaScript的DOM操作、事件处理和Ajax交互。Struts2是一个流行的Java Web框架,用于构建MVC(Model-View-Controller)架构的...
5. **前端交互**:在前端使用JavaScript(例如jQuery)发起Ajax请求,获取并处理由Struts2 JSON插件返回的JSON数据。 通过Struts2 JSON Plugin 2.1.8,开发者可以轻松地在Struts2应用中集成JSON功能,提高应用的...
4. "struts2-junit-plugin-2.1.8.jar" 是Struts2的JUnit测试插件,用于进行单元测试,虽然不直接与JSON处理有关,但在开发过程中是必不可少的工具。 5. "json.txt" 文件可能包含示例或测试的JSON数据,可以用于测试...
在前端,可以通过JavaScript或者jQuery等库,使用AJAX请求Struts2的JSON Action,并处理返回的JSON数据。例如,使用jQuery的`$.ajax()`方法: ```javascript $.ajax({ url: 'myAction.json', type: 'POST', ...
- `struts2-json-plugin-2.1.8.jar` - `struts2-junit-plugin-2.1.8.jar` 此外,需要注意移除可能存在的旧版本插件,如`jsonplugin-0.34.jar`。 #### 总结 通过上述步骤,我们可以利用Struts2、Hibernate、Spring...
8. **Ajax支持**:Struts 2可以轻松地与jQuery或其他JavaScript库结合,实现部分页面更新,提高用户体验。 9. **插件系统**:Struts 2拥有丰富的插件集,如JSON插件、Freemarker插件等,可以扩展框架功能,满足不同...
│ struts2-json-plugin-2.1.8.jar │ struts2-spring-plugin-2.1.8.jar │ xwork-core-2.1.6.jar │ ├─struts │ commons-fileupload-1.2.1.jar │ freemarker-2.3.15.jar │ jstl.jar │ ognl-2.7.3.jar │ ...