jquery easyui datagrid查询时,怎么才能传java对象参数?

ladybirds2008 2013-07-30 09:51:02
jquery easyui datagrid加载查询时,怎么才能传java对象参数?
或者给解释下datagrid 加载时候如何修改才能传 对象参数?解决问题者100分追加。
目的是达到就像提交表单那样,在action中直接用对象就能获取到参数值,如下我要传opt对象的id属性:


jsp中:
<form name="">
<s:hidden name="opt.id" id="opt.id"></s:hidden>
......
</form>


var params = $('#listTable').datagrid('options').queryParams;
params["opt.id"]=$("opt.id").val();
$('#listTable').datagrid('load');


java action 中接参数:
class TestAction {
private OptBean opt;
public String execute(){
//在此要获取opt的id值
//如此能获取到----
String id = request.getParameter("opt.id")
//如此获取不到
id = opt.getId();
return null;
}
set...
get...
}
class OptBean {
private String id;
set...
get...
}
...全文
1410 24 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
_孤影尚凌煙 2013-08-05
  • 打赏
  • 举报
回复
引用 23 楼 u011605902 的回复:
var param={"xxx.xxx":$("#xxx").val()}; $('#listTable').datagrid('options').queryParams=param; $('#listTable').datagrid('reload');
对象在action里面需要get set方法
_孤影尚凌煙 2013-08-05
  • 打赏
  • 举报
回复
var param={"xxx.xxx":$("#xxx").val()}; $('#listTable').datagrid('options').queryParams=param; $('#listTable').datagrid('reload');
ladybirds2008 2013-07-30
  • 打赏
  • 举报
回复
引用 20 楼 fangmingshijie 的回复:
form里有method属性吗?加个method="post"
又不是form表单提交,给form写method 没有什么作用吧!
  • 打赏
  • 举报
回复
form里有method属性吗?加个method="post"
ladybirds2008 2013-07-30
  • 打赏
  • 举报
回复
引用 18 楼 fangmingshijie 的回复:
难道获取不到隐藏域的值,显示的写一个属性看看能获取不
直接写死个定值 都不行.不知道为什么。。
  • 打赏
  • 举报
回复
难道获取不到隐藏域的值,显示的写一个属性看看能获取不
ladybirds2008 2013-07-30
  • 打赏
  • 举报
回复
引用 16 楼 fangmingshijie 的回复:
看你如何定义的opt,已经如何使用的opt
看一楼嘛!我上面简单写了的啊! 无非是 action中 opt对象 set get, 和 opt 对象class内的 id 属性 set get
  • 打赏
  • 举报
回复
看你如何定义的opt,已经如何使用的opt
ladybirds2008 2013-07-30
  • 打赏
  • 举报
回复
引用 14 楼 fangmingshijie 的回复:
你后台要定义一个opt对象,取的时候直接getOpt().getId()之类的就行了。
问题是 现在这样不能获取到?这就是要解决的问题点!
  • 打赏
  • 举报
回复
你后台要定义一个opt对象,取的时候直接getOpt().getId()之类的就行了。
ladybirds2008 2013-07-30
  • 打赏
  • 举报
回复
引用 11 楼 fangmingshijie 的回复:
那你这个opt,不还是后台定义的了。
现在问题就是要解决 为什么 opt对象没有接到值? 而String id = request.getParameter("opt.id")接到了值,可见它是 只 当成字符串了!
ladybirds2008 2013-07-30
  • 打赏
  • 举报
回复
引用 10 楼 qq1145174853 的回复:
你可以封装一个公用类,存放grid自带的那些个属性,入page,rows等参数,至于查询条件貌似不好共用
封装一个对象可以吗?如果这个可以,其它查询参数也应该可以啊,?因为他们的传值方式 是一样的啊?看源码是这样的,请求的时候都一样的啊!

        var _47a = $.extend({}, opts.queryParams);
        if (opts.pagination) {
            $.extend(_47a, {
                page: opts.pageNumber,
                rows: opts.pageSize
            });
        }
        if (opts.sortName) {
            $.extend(_47a, {
                sort: opts.sortName,
                order: opts.sortOrder
            });
        }
           $.ajax({
                type: opts.method,
                url: opts.url,
                data: _47a,
          ..................

  • 打赏
  • 举报
回复
那你这个opt,不还是后台定义的了。
lkq_david 2013-07-30
  • 打赏
  • 举报
回复
你可以封装一个公用类,存放grid自带的那些个属性,入page,rows等参数,至于查询条件貌似不好共用
ladybirds2008 2013-07-30
  • 打赏
  • 举报
回复
引用 7 楼 fangmingshijie 的回复:
关键的问题,你如何去构筑这个对象,除非你前台引入java代码,传对象进去。
如果是 form 表单 submit提交,这个opt.id属性是可以传到action中的,即action中opt对象是有值的。 <form name=""> <s:hidden name="opt.id" id="opt.id"></s:hidden> ...... </form> 现在同样想实现,action中opt对象也能有值。
一叶飞舟 2013-07-30
  • 打赏
  • 举报
回复
$('#listTable').datagrid('load',params);
  • 打赏
  • 举报
回复
关键的问题,你如何去构筑这个对象,除非你前台引入java代码,传对象进去。
ladybirds2008 2013-07-30
  • 打赏
  • 举报
回复
引用 5 楼 fangmingshijie 的回复:
那就不用穿了,action定义一个和页面的name值一样的属性,就能自动获取了。
我现在问题是,对系统前台代码进行重构,action想不变动 现有接参 方式,保持原有对象传值的方式,如果是只是达到接到参数值的目的,我现在就不用再纠结了,因为现在已经能成功传值了; 现在的问题是我要 传值、接值的方式是 对象传值 方式,不是实现 怎么成功传值;
  • 打赏
  • 举报
回复
那就不用穿了,action定义一个和页面的name值一样的属性,就能自动获取了。
ladybirds2008 2013-07-30
  • 打赏
  • 举报
回复
引用 3 楼 splendid_java 的回复:
可以传一个json,不用一个个传
无论 怎么传,action中能用opt对象获取到就行啊?关键是现在如下情况: //如此能获取到---- String id = request.getParameter("opt.id") //如此获取不到 id = opt.getId();
加载更多回复(4)

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧