angular.js前端和后台的数据交换,后台取不到值对应方案

环境:angular.js+sastruts+apache-tomcat

最近在学习前端的一个设计工具angular.js,数据双向绑定,其特点就不作多述,学习的过程中有一个问题就是前端向后台传值时,后台的Action无法取得。
研究了半天,使用了以下的解决方案:使用jQuery的方式和数据格式来进行传递。

app.js

angular.module('mainApp', []).config([ '$httpProvider', function($httpProvider) {
	$httpProvider.defaults.transformRequest=function(data){
		if(data==undefined) {
			return data;
		}
		return $.param(data);
	};
	$httpProvider.defaults.headers.post['Content-Type']=
            'application/x-www-form-urlencoded;charset=UTF-8';
} ]);
controller.js
// 方式①$resource
Test01Service.save({
	paramJson : angular.toJson(test01Form)
}, function(obj) {
	...
});

// 方式②$http
$http.post('../../test/test01/save',{ paramJson:angular.toJson(test01Form) });

service.js

// 方式①$resource
angular.module('test01Services', [ 'ngResource' ]).factory('Test01Service', 
    [ '$resource', function($resource) {
	return $resource('../test/test01/save');
} ]);
这样后台Form中paramJson属性就可以取到值了。(前端和后端的数据交换这里使用Json文字列)
另外,如果数据量太大(>2M)的话,post会出错,后台也会取不到数据。
具体的原因可参看参照文档中的描述。

参考资料:
http://my.oschina.net/buwei/blog/191640
http://www.java123.net/v/983363.html
http://blog.sina.com.cn/s/blog_7853b58f01016pez.html

感谢网络上热心的前辈技术分享!本文如有不正,请指出。

以上。

你可能感兴趣的:(angular.js,后台数据)