jQuery MiniUI

标题: datagrid不灵活 [打印本页]

作者: skylove    时间: 2014-1-15 12:30:21     标题: datagrid不灵活

datagrid不灵活,为什么在load的时候不能设置contentType了,默认的是application/x-www-form-urlencoded,为什么不能更改以Json方式提交了

作者: factory    时间: 2014-1-15 13:24:34

datagrid内部就是ajax + json的方式跟后台交互
作者: skylove    时间: 2014-1-15 13:45:37

factory 发表于 2014-1-15 13:24
datagrid内部就是ajax + json的方式跟后台交互

我知道 但是值传递到后台是Content-Type:application/x-www-form-urlencoded
而不是Content-Type:application/json
作者: niko    时间: 2014-1-15 14:20:17

给表格设置:
ajaxOptions="{contentType:'application/json'}"
作者: skylove    时间: 2014-1-15 14:40:25

niko 发表于 2014-1-15 14:20
给表格设置:
ajaxOptions="{contentType:'application/json'}"

恩 这样设置后 contentType是改变了
但是出现这样的
  1. pageSize=3&pageNo=1&proc%5BcaseNo%5D=wwww&pageIndex=0&sortField=&sortOrder=
复制代码
caseNo是proc的一个属性
我要换成pageSize=3&pageNo=1&proc.caseNo=wwww&pageIndex=0&sortField=1&sortOrder=1就能跟我后端的实体映射上去了,中间的%5B跟%5D能否通过某些方式转换下
作者: skylove    时间: 2014-1-15 14:46:10

niko 发表于 2014-1-15 14:20
给表格设置:
ajaxOptions="{contentType:'application/json'}"

这个是我从chrome中看到的http头信息
设置后 理论上传送的不是json
  1. Accept:text/plain, */*; q=0.01
  2. Cache-Control:max-age=0
  3. Content-Type:application/json
  4. Origin:http://localhost:8080
  5. Referer:http://localhost:8080/ElectronicRecord/caseRegister/registerinfo.do
  6. User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
  7. X-Requested-With:XMLHttpRequest
  8. Request Payload
  9. pageSize=3&pageNo=1&proc%5BcaseNo%5D=wwww&pageIndex=0&sortField=&sortOrder=
复制代码
值还是以表单方式提交的
作者: skylove    时间: 2014-1-15 14:51:05

niko 发表于 2014-1-15 14:20
给表格设置:
ajaxOptions="{contentType:'application/json'}"
  1. Request URL:http://localhost:8080/ElectronicRecord/caseRegister/pageList.do
  2. Request Headersview source
  3. Accept:application/json, text/javascript, */*; q=0.01
  4. Cache-Control:max-age=0
  5. Content-Type:application/json
  6. Origin:http://localhost:8080
  7. Referer:http://localhost:8080/ElectronicRecord/caseRegister/registerinfo.do
  8. User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
  9. X-Requested-With:XMLHttpRequest
  10. Request Payloadview parsed
  11. {"pageSize":3,"pageNo":1,"proc":{"caseNo":"1111"}}
复制代码
设置为json方式后,应该显示这样的
作者: skylove    时间: 2014-1-15 16:01:20

大神 版主 急求啊 在线急等
作者: niko    时间: 2014-1-15 16:08:04

试试:ajaxOptions="{contentType:'application/json', dataType: 'json'}"
如果还不行,请说明用jquery的ajax是如何跟你后台交互传递的,配置信息如何写,这样我们就可以处理了,因为我们的ajax也是用jquery的
作者: skylove    时间: 2014-1-15 16:19:10

niko 发表于 2014-1-15 16:08
试试:ajaxOptions="{contentType:'application/json', dataType: 'json'}"
如果还不行,请说明用jquery的a ...

还是不行 映射不上去
头部信息如下
  1. Accept:application/json, text/javascript, */*; q=0.01
  2. Cache-Control:max-age=0
  3. Content-Type:application/json
  4. Origin:http://localhost:8080
  5. Referer:http://localhost:8080/ElectronicRecord/caseRegister/registerinfo.do
  6. User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
  7. X-Requested-With:XMLHttpRequest
  8. Request Payload
  9. pageSize=3&pageNo=1&proc%5BcaseNo%5D=wwww&pageIndex=0&sortField=&sortOrder=
复制代码
我的后台是这样
PageQuery对象
  1. private Caseregister proc;
  2. private int pageIndex;
  3. private String sortField;
  4. private String sortOrder;
复制代码
Caseregister对象
  1. private Integer id;
  2. private String caseNo;
  3. private String caseName;
复制代码
PageQuery对象里的proc属性一直映射不上去
如果是
  1. Accept:application/json, text/javascript, */*; q=0.01
  2. Cache-Control:max-age=0
  3. Content-Type:application/json
  4. Origin:http://localhost:8080
  5. Referer:http://localhost:8080/ElectronicRecord/caseRegister/registerinfo.do
  6. User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
  7. X-Requested-With:XMLHttpRequest
  8. Request Payloadview source
  9. {pageSize:3, pageNo:1, proc:{caseNo:1111}}
  10. pageNo: 1
  11. pageSize: 3
  12. proc: {caseNo:1111}
复制代码
就可以映射上去
我的理解是load方法将我的json对象处理了下,虽然contentType:'application/json'是Json方式,但是传递的值不是json
作者: skylove    时间: 2014-1-15 17:33:51

帖子不能沉啊
作者: somax    时间: 2014-2-27 10:08:29

//缓存原有方法
mini._ajax = mini.ajax;
//添加 payload 转换方法
mini.payload = function(isPayload) {
        if (isPayload) {
                mini.ajax = function(_options) {
                        _options.contentType = "application/json; charset=UTF-8";
                        _options.data = JSON.stringify(_options.data);
                        return mini._ajax(_options)
                }
        }else{
                mini.ajax = mini._ajax;
        }
}
//设置成 payload 模式
mini.payload(true);
作者: skylove    时间: 2014-3-17 16:53:22

somax 发表于 2014-2-27 10:08
//缓存原有方法
mini._ajax = mini.ajax;
//添加 payload 转换方法

非常感谢 这个方法可行  省了很多事  之前没找到这种方法 后来是手动的setData然后自定义一个分页处理的




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2