`
lerluc
  • 浏览: 16609 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

jQuery param serialization and Struts2 built in type conversion not compatible

阅读更多
页面上jQuery需要把一个复杂类型的javascript数组对象作为参数传到Struts2 action,但是他们的默认格式不匹配导致action无法正确获得参数。

Struts2 action
class SomeAction{
  List<SomeBean> list;
  //getter setter
  //execute()
}
class SomeBean{
  int id;
  //getter setter
}


参数为以下格式(OGNL格式)时,Struts2 action能正确映射
list[0].id=1


但是当jQuery发送ajax call的时候
$.post(url, {list: [{id: 1}]})


参数会被序列化为
list[0][id]=1


要转换成功,要么把jQuery的序列化格式改掉来迎合Struts2,要么给Struts2 action写个converter来迎合jQuery,前者更简单。于是
//buildParams( prefix + "[" + k + "]", v, traditional, add );
buildParams( prefix + "." + k, v, traditional, add );


改jQuery源码并不是个好做法,最好是做个patch把$.param()覆盖掉.
分享到:
评论
1 楼 lykm02 2011-04-20  
Thanks very much. 终于找到解决方案了。谢谢。
不过,converter应该怎么写呢?
可否给个例子?

相关推荐

    Struts2 in action中文版

    第1章 Struts 2:现代Web框架 2 1.1 Web应用程序:快速学习 2 1.1.1 构建Web应用程序 2 1.1.2 基础技术简介 3 1.1.3 深入研究 6 1.2 Web应用程序框架 7 1.2.1 什么是框架 7 1.2.2 为什么使用框架 8 1.3 Struts 2框架...

    在Eclipse中配置Struts2项目(html)手把手教会你 +struts2 标签库介绍(html) + STRUTS2学习文档.pdf + Struts2―表单验证validate(html) + struts2和struts的比较 + struts教程(html)

    在Eclipse中配置Struts2...Struts2―表单验证validate(html)对validate的type属性校验类型以及param 做了详细的解释说明。 struts2和struts的比较 让你更清楚的知道struts2和struts的不同之处。 struts教程(html)

    jquery.param.patch.zip

    页面上jQuery需要把一个复杂类型的javascript数组对象作为参数传到Struts2 action,但是他们的默认格式不匹配导致action无法正确获得参数。 Struts2 action class SomeAction{ List&lt;SomeBean&gt; list; //getter...

    jquery-param:与jQuery.param等效的功能

    jQuery参数产品特点等效于jQuery.param(基于jQuery 3.x) 没有依赖关系通用(同构) ES模块支持安装Node.js: npm install jquery-param --save 浏览器: &lt; script src =" /path/to/jquery-param.min.js " &gt; ...

    前端开源库-jquery-param-fn

    前端开源库-jquery-param-fnjquery param fn,替代jquery的param函数。

    解决struts2下载异常的jar包 struts2-sunspoter-stream-1.0.jar

    在struts2中使用result里type="stream"的结果类型时,可以实现文件的下载管理,使用时也是比较顺畅,但是当在“下载提示窗口”中点击“取消按钮”时,总是报出“java.lang.IllegalStateException”异常,异常内容...

    论坛系统(Struts 2+Hibernate+Spring实现)

    论坛系统(Struts 2+Hibernate+Spring实现) &lt;!DOCTYPE validators SYSTEM "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd" PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"&gt; -...

    Struts2+Spring3+MyBatis3完整实例

    网上的东西好大多都不能直接用,自己结合网上资料做了一个Struts2+Spring3+MyBatis3的测试工程,JUnit测试用例和WEB服务。 内涵完整jar包,解压直接可用,包括一个表文件。 Eclipse3.2+Tomcat/5.5+jdk1.5.0_17 - ...

    深入浅出Struts2(附源码)

    本书是广受赞誉的Struts 2优秀教程,它全面而深入地阐述了Struts 2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使用最合适的特性。作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,...

    struts2讲义_吴峻申

    Struts2讲义 作者:吴峻申 目录 第1章 Struts过时了吗? 10 1.1 Struts历史发展过程 10 1.2 Struts2的“简历” 13 1.2.1 标签库介绍 13 1.2.2 拦截器应用目的 14 1.2.3 FilterDispatcher和Action概述 14 1.2.4 ...

    JQuery.param

    此资源包是jQuery.param.js。非常好用的js文件,有需要的请放心下载使用。

    struts2支持方法上传递参数

    在struts2中可以在方法上传递相应的参数,不需要使用注解,直接使用参数名进行界面传递参数信息,并且可以在界面进行访问

    解决struts2.1.6+spring+hibernate 中文乱码

    struts.properties设置( struts.objectFactory = spring struts.i18n.reload=true ... org.apache.struts2.dispatcher.ActionContextCleanUp &lt;filter-name&gt;struts-cleanup &lt;url-pattern&gt;/* &lt;/filter-mapping&gt;

    jQuery 1.4.1 中文参考

    11.6.1 jQuery.param(obj, [traditional]) 194 11.7 插件编写 196 11.7.1 jQuery.error(message) 196 12. 关于 197 12.1 关于jQuery 中文文档 197 12.2 关于jQuery 1.3 版翻译 197 12.3 关于jQuery 1.2 版翻译 197 ...

    struts2+kindEditor4.1.7

    2、复制struts需要的jar包和kindEditor必须jar包到lib下,因为它们的jar包邮重复,选择最新的就ok 3、如果需要后台java代码获取内容,可以在action中定义content属性,getContent就可以获取到 需要注意的是,这里的 ...

    jquery3.0.min.js+jquery.param.js+跨域代码Demo

    利用jquery技术和url传参,实现tomcat网页和Webstorm网页之间实现跨域数据传输

    jfreechar 整合struts2.1.8版本生成线图,饼图,柱形图

    &lt;package name="com.kay.struts2" extends="struts-default" namespace="/test"&gt; &lt;!-- 定义拦截器 name:拦截器名称 class:拦截器类路径 --&gt; ...

    struts2+kinEditor整合

    2、复制struts需要的jar包和kindEditor必须jar包到lib下,因为它们的jar包邮重复,选择最新的就ok 3、如果需要后台java代码获取内容,可以在action中定义content属性,getContent就可以获取到 需要注意的是,这里的 ...

Global site tag (gtag.js) - Google Analytics