首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

Struts2.1.8调整json、jquery

2012-09-06 
Struts2.1.8整合json、jquerystruts2-core-2.1.8.1.jar与jsonplugin-0.34.jar 配合使用会出现异常,以前的项

Struts2.1.8整合json、jquery
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" name="code"><package name="tableInfoOperAction" extends="json-default"> <action name="showColumns" 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>

热点排行
Bad Request.