后台代码:
 @RequestMapping(value = { "queues" })
@ResponseBody
public List<ResourcePool> list(Model model) {
List<ResourcePool> lst = Lists.newArrayList();
......
return lst;
}
前台处理:
 $(function() {
$.getJSON("${ctx}/v1/resourcepool/queues/", function(data){
$.each(data, function(key, queue){
var tr = "<tr>"
tr = tr + "<td>" + queue.queueName + "</td>";
... ...
tr = tr + "</tr>";
$("#contentTable").append(tr);//向table中追加tr
})
})
});
即使后台返回的是一个list,前台处理的也是一个Map,key是0,1,2..,value才是List里面的对象;
异常信息
页面不存在(503):请求controller(资源)的路径是没问题,但是controller返回的路径是有问题的。
路径不存在(403):Forbitten(禁止)访问资源;服务器网站存在,但是资源可能不存在;URL写错了
400 Bad Request:调试了半天,终于调通了原来是因为;@PathVariable里面的参数名称和@RequestMapping里面的参数不一致造成的。
@RequestMapping(value = { "queues/{queueName}" }, method = RequestMethod.POST)
public String removeTenant(@PathVariable("queueName") String userName, Model model) throws Throwable {
RESTful要搞清楚是请求;之前纠结于一个问题,就是会页面显示的${},我想要把${}给干掉, RESTful嘛;但是你要知道你在JSP页面搞这个东西没有问题;因为页面都是在服务器上面处理;包括页面你也可以搞addModel,这都是没有问题;
你要考虑的是如果别人是第三方,你放心别人第三方是不可能去请求你的页面的,能请求的只是你的 数据;请求的你的数据,请求你的数据;所以页面需要和请求数据,提交数据分离开来。页面扮演第三方的角色;页面本身是可以有${};但是你要注意不能使用spring的那种自动绑定数据,和数据相关的都不能使用spring了;数据相关只能通过RESTful的接口去获取,然后通过js进行赋值。
状态可以通过${}形式来获取,所以对于index,获取页面的请求,你可以使用addmodel,addAttribute;但是对于提交的方法API,返回数据的方法API,是不能使用这种的。只能通过json去返回。
 
对于PUT和POST写法,只能通过下面的方式来进行提交:
 var data = {
'queueName' : queueName,
'coreNum' : coreNum,
'mem' : mem,
'appCount' : appCount,
'aclForSubmit' : aclForSubmit
};
var type = "${mode}" == "add" ? "PUT" : "POST";
$.ajax({
url : '${ctx}/v1/resourcepool/queues',
type : type,
data : JSON.stringify(data),
success : function(result) {
alert(result);
}
});
 
注意data需要进行json的string化处理。
 关于调试
调试RESTful真的是要各种工具齐上阵,包括firefox的html节点查看器;还有js的调试器以及Network工具用来查看网络请求情况(包括url,动作,参数,后台相应)
 

RESTful的一个样例的更多相关文章

  1. Javascript 进阶 面向对象编程 继承的一个样例

    Javascript的难点就是面向对象编程,上一篇介绍了Javascript的两种继承方式:Javascript 进阶 继承.这篇使用一个样例来展示js怎样面向对象编程.以及怎样基于类实现继承. 1. ...

  2. openssl之EVP系列之9---EVP_Digest系列函数的一个样例

    openssl之EVP系列之9---EVP_Digest系列函数的一个样例     ---依据openssl doc/crypto/EVP_DigestInit.pod翻译     (作者:Drago ...

  3. 网上搜的一个shell中 中文设置的一个样例;

    from:http://www.cnblogs.com/52linux/archive/2012/03/24/2415082.html SSH Secure Shell Client中文乱码的解决方法 ...

  4. hadoop-HBase-observer的一个样例

    hbase(main):021:0> describe 'users' DESCRIPTION                                                   ...

  5. 一个样例看清楚JQuery子元素选择器children()和find()的差别

    近期在我们的hybrid app项目开发中定位出了一个问题.通过这个问题了解下JQuery选择器find()和children()的差别.问题是这种:我们的混合app是一个单页面应用(main.htm ...

  6. DirectX11 学习笔记6 - 使用D3DXMATH数学库的一个样例

    这个样例是在之前的样例基础上 .把之前d3dx10math数学库换成了最新的d3dxmath.长处就不说了.先上效果图 所有代码.以及效果文件 文件结构 所有代码: 依照上图的文件顺序 #pragma ...

  7. Qt的Socket数据通讯的一个样例。

    QTcpServer类 用来侦听port ,获取QTcpSocket. QTcpSocket有  connected的信号(已经连接),还有readyread()信号,表示已经有数据发过来了.准备读取 ...

  8. Angularjs Nodejs Grunt 一个样例

    做了一个简单的演示样例,目的是记录环境配置以及这套框架的结构流程. 1.配置环境 默认nodejs已安装. 安装下面模块:express(nodejs框架),grunt(javascript task ...

  9. 用Unity做的一个小游戏,仿照一个样例写的,个人认为文章写的不错,哈哈

随机推荐

  1. Log4j详细设置说明

    1. 动态的改变记录级别和策略,即修改log4j.properties,不需要重启Web应用,这需要在web.xml中设置一下.2. 把log文件定在 /WEB-INF/logs/ 而不需要写绝对路径 ...

  2. 共用y轴的双图形绘制

    实现这种形式的图形,可通过matplotlib和pandas的实现,相比下pandas实现方便的多. 我数据分析的时候主要是stacked bar.bar和line形式的放在一张图上.stacked ...

  3. URAL 1557 Network Attack 图论,连通性,tarjain,dfs建树,分类讨论 难度:2

    http://acm.timus.ru/problem.aspx?space=1&num=1557 1557. Network Attack Time limit: 2.0 secondMem ...

  4. NPOI 生成 Excel

    前言 ​ 在 c# 中可以使用对应的com组件生成或操作excel,但前提是必须安装了Office Excel , 但服务器端不一定会安装Excel,而且它操作起来并不简单.但是,使用NPOI这个第三 ...

  5. 公客网beta阶段项目展示

    课程评价网站--公客网 为大学生选课排忧解难 公正客观的评课网站 为大学生提供发表自己看法的平台 为每一门课程打出公正的评分 beta阶段的新功能 beta阶段发布说明 评价的增删改 对课程发表评价 ...

  6. jQuery实现select三级联动

    参考:jQuery权威指南jQuery初步jQuery选择器jQuery操作domjQuery操作dom事件jQuery插件jQuery操作AjaxjQuery动画与特效jQuery实现导航栏jQue ...

  7. 自定义控件-滑动条SeekBar

    一.效果图 二.实现思路 1.控件继承自View 2.重写两个方法onDraw() 绘制页面和 onTouch() 添加监听 3.onDraw(Canvas ca)中     a.new Canvas ...

  8. 第2课:jmeter总结、Charles抓包

    1.  tps(throughput):每秒钟处理的事务数(请求数),定义与qps类似(qps:每秒完成的请求个数.)  响应时间(average):每个请求的平均响应时间 2. jmeter实现下载 ...

  9. Linux下的软件的安装

     一.yum相关介绍及命令 [1] 用来管理软件的一个命令.通过该命令完成对软件的下载.卸载等操作. [2] 命令:(必须在yum搭建成功后才能正常运行) yum  clean all      清楚 ...

  10. PostgreSQL提升为主库 时间线加一的问题

    在使用PostgreSQL高可用集群过程中发现一个很难解决的问题,先记录在这里. 我们知道在PG流复制集群中,如果主库死掉了,备库要提升为主库有两种方法: 1)pg_ctl promote 2)创建对 ...