struts2中,如果采用ajax调用,怎么获取页面数据 - Web 开发 / Ajax
1,在Action类中定义一个User user对象,有name,id属性;
2,页面中这样写
<input type="text" name="user.name" id="user.name" />
<input type="text" name="user.id" id="user.id" />
3,如果是用form提交的话,在Action中会自动把页面输入的name和id装载到user对象
4,但是我现在用了jquery的ajax调用,目的是为了在Action返回后直接处理页面
$.ajax({
url:'save_Batch',
type:'POST',
error:function(xhr,status,errorMessage){},
success:function(){
alert('保存成功!');
//后续处理
}
});
这样调用的话页面数据不会装载到action的user对象,user对象还是null,如果需要传递数据的话,只能在ajax调用中使用data,但是如果页面数据元素很多的话,写起来太繁琐
请问有什么办法能够实现用ajax调用也能装载数据吗,谢谢!
[解决办法]
- CSS code
你可以通过jQuery先获得页面的值然后将值传过去,url:'save_Batch?user.name=aaaa&user.id=bbbbb',这样后台还是可以得到这些数据的。前提是传值的方式是以对象的方法,因为你在struts2中是user的getter、setter方法所有在js中用data: {user.id:1,user.name:'bbb'}也是可行的
[解决办法]
我跟你的问题是一样的。
我的写法是:
//查询条件生成json数据
function queryTerInfo(){
var jsonStr = [];
var _str = [];
$("#querySite input:text").each(function(){
jsonStr.push("'"+$(this).attr("name")+ "':'" + encodeURI($(this).val())+"'");
});
$("#querySite select").each(function(){
jsonStr.push("'"+$(this).attr("name")+ "':'" + encodeURI($(this).val())+"'");
});
jsonStr = jsonStr.join(',');
_str.push('{'); _str.push(jsonStr); _str.push('}');
_str = _str.join('');
var data = eval('(' + _str + ')');
ajax(TER_QUERY_URL, data);
}
[解决办法]
因为我的查谒条件用<div id='querySite '>包起来。然后里面就text select 这些条件。如果你还有别的可以加。元素的名称就不变跟你上面一样user.id ,user.name
得到的数据为:{'user.id':'1','user.name':'2'}