日期:2014-05-17  浏览次数:20873 次

strutts如何使用json+jquery传值

action部分代码
Java code

List<Book> shopingBook=bookService.findBook();


struts.xml代码
XML code

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<constant name="struts.i18n.encoding" value="UTF-8" />
<package name="json" extends="json-default" namespace="/test">
  <action name="oneShopNumOpt" class="shopingCarAction" method="oneShopNumOpt">
  <result type="json"></result>
 </action>
</package>
</struts>



js 代码
JScript code

 function shopPush(bookId){
       $.get("test/oneShopNumOpt.action",{'bookId':bookId},function(data){
              alert(data);
       });   
    }




我的问题是,如何在action中把shopingBook这个list转换成josn格式,传递给jquery中data





------解决方案--------------------
XML code
<result type="json">shopingBook.*</result>

------解决方案--------------------
action private List<Book> shopingBook;添加get set方法

 shopingBook=bookService.findBook();赋值成功后return success;




<result name="success" type="json"><param name="root">shopingBook</param></result>
------解决方案--------------------
struts 有JSON插件,插件好了,返回也是JSON形式的,转换是插件里面自己转换的。
我有个SPRING MVC的项目后台用GSON做的转换,JQUERY识别成了XMLJQUERY解析JSON要制定出来返回形式是JSON,要不JQUERY很智能的帮你解析成XML形式,API上明明说自动识别,我上次就这问题,不信你打出来他的类型就是XML。
就这个东西
dataType 可选。规定预计的服务器响应的数据类型。

默认地,jQuery 将智能判断。
可能的类型:
"xml" 
"html" 
"text" 
"script" 
"json" 
"jsonp" 
 
JQUERY很智能的选择了XML
------解决方案--------------------
jackson-mapper-asl-1.6.0.jar
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.writeValueAsString(valueType);//Object valueType
可以把ArrayList类型的数据转换为JSON格式的,我现在的项目就是这样做的,很方便的哦