rest plugin 学习(二)

[size=small]1. 插件默认主要访问形式:

GET: /orders => method="execute" 访问全部资源
GET: /orders/ben => method="show", id="ben" 访问id为ben资源
GET: /orders/ben;edit => method="edit", id="ben" 修改ben,跳到修改页面(rails形式)
GET: /orders/ben/edit => method="edit", id="ben" 修改ben,跳到修改页面
GET: /orders/new => method="editNew" 跳到一个新建页面
GET: /orders/ben/method1 => method="method1" 访问method1,传id为ben
GET: /orders/ben/method2 => method="method2" 访问method2,传id为ben
POST: /orders => method="create" 提交一个新资源
PUT: /orders/ben => method="update", id="ben" 提交一个修改后ben
DELETE: /orders/ben => method="destroy", id="ben" 删除ben


2. PUT和DELETE方法:

2.1 在tomcat中开启[/size]

<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
</servlet>

[size=small]
2.2 脚本支持put和delete方法,可用ajax调用。

2.3 浏览器本不支持put和delete方法。struts2是利用post方法中带一个_method参数来曲线实现。_method="PUT"是put方法,_method="DELETE"是delete方法,大小写没有要求。


3. HttpHeaders的使用。

这是新增的一种返回类型,其实还是返回字符串,但是在http头部可以自定义一些内容。这个类是一个连缀式结构,每个set方法都返回当前对象。像"ETag","LocationId"在网络中还是非常有用的。具体的详细研究还要等别的文章。

通过例子,我们看到:
"index"方法,返回的是 new DefaultHttpHeaders("index").disableCaching(),原因是新增,修改,删除后的操作都要redirect到这个action,所以不加cache,以反应实时变化。
"create"方法,返回的是new DefaultHttpHeaders("success").setLocationId(model.getId()),原因是"create"方法是post当前action,"index"是get当前action,同一个地址,不同的调用方法,所以要加一个LocationId以表示有新增情况。否则跳转结果不正确。


4. ModelDriven的使用

通过例子,我们看到程序使用的是ModelDriven<Object>。这样的泛型和没有泛型一样,一个action的model可以是任何一个类型,这就有了很大的自由度,我们不同的方法可以获得不同的model。还有就是id的使用,action中有个id属性,model类中也有个id属性,这个特别容易混淆。

[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值