WEB开发网
开发学院软件开发Java spring 3.0 应用springmvc 构造RESTful URL 详细讲... 阅读

spring 3.0 应用springmvc 构造RESTful URL 详细讲解

 2009-09-21 00:00:00 来源:WEB开发网   
核心提示: 上面是rapid-framework 新版本生成器生成的代码,以后也将应用此规则,rest url中增删改查等基本方法与Controller的方法映射规则Java代码 /userinfo=>index()/userinfo/new=>_new()/userinfo/{id}=>

上面是rapid-framework 新版本生成器生成的代码,以后也将应用此规则,rest url中增删改查等基本方法与Controller的方法映射规则

Java代码

 /userinfo  => index() 
 /userinfo/new => _new() 
 /userinfo/{id} => show() 
 /userinfo/{id}/edit  => edit() 
 /userinfo POST => create() 
 /userinfo/{id} PUT => update() 
 /userinfo/{id} DELETE => delete() 
 /userinfo DELETE => batchDelete()

注(不使用 /userinfo/add  => add() 方法是由于add这个方法会被maxthon浏览器当做广告链接过滤掉,因为包含ad字符)

4. jsp 编写

Html代码   

<form:form action="${ctx}/userinfo/${userInfo.userId}" method="put"> 
</form:form>

生成的html内容如下, 生成一个hidden的_method=put,并于web.xml中的HiddenHttpMethodFilter配合使用,在服务端将post请求改为put请求

Java代码   

<form id="userInfo" action="/springmvc_rest_demo/userinfo/2" method="post"> 
 <input type="hidden" name="_method" value="put"/> 
</form>

另外一种方法是你可以使用ajax发送put,delete请求.

5. 静态资源的URL重写

如上我们描述,现因为将default servlet映射至/static/的子目录,现我们访问静态资源将会带一个/static/前缀.

如 /foo.gif, 现在访问该文件将是 /static/foo.gif.

那如何避免这个前缀呢,那就是应用URL rewrite,现我们使用 http://tuckey.org/urlrewrite/, 重写规则如下

Xml代码  

<urlrewrite> 
  <!-- 访问jsp及jspx将不rewrite url,其它.js,.css,.gif等将重写,如 /foo.gif => /static/foo.gif --> 
  <rule> 
   <condition operator="notequal" next="and" type="request-uri">.*.jsp</condition> 
   <condition operator="notequal" next="and" type="request-uri">.*.jspx</condition> 
    <from>^(/.*\..*)$</from> 
    <to>/static$1</to> 
  </rule> 
</urlrewrite>

另笔者专门写了一个 RestUrlRewriteFilter来做同样的事件,以后会随着rapid-framework一起发布. 比这个更加轻量级.

并且该代码已经贡献给spring,不知会不会在下一版本发布

上一页  1 2 3 4 5 

Tags:spring 应用 springmvc

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接