初一七月

          你必須承認(rèn),我們生存的這個(gè)世界取決于自身的能力而非別人的保護(hù)(AW)
          隨筆 - 23, 文章 - 0, 評(píng)論 - 11, 引用 - 0
          數(shù)據(jù)加載中……

          SpringMVC添加支持Http的delete、put請(qǐng)求

              瀏覽器form表單只支持GET與POST請(qǐng)求,而DELETE、PUT等method并不支持,spring3.0添加了一個(gè)過濾器,可以將這些請(qǐng)求轉(zhuǎn)換為標(biāo)準(zhǔn)的http方法,使得支持GET、POST、PUT與DELETE請(qǐng)求。

              1.配置springmvc配置文件springmvc-servlet.xml
          <!-- 瀏覽器不支持put,delete等method,由該filter將/xxx?_method=delete轉(zhuǎn)換為標(biāo)準(zhǔn)的http delete方法 -->  
          <filter>  
              
          <filter-name>HiddenHttpMethodFilter</filter-name>  
              
          <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>  
          </filter>  
            
          <filter-mapping>  
              
          <filter-name>HiddenHttpMethodFilter</filter-name>  
              
          <servlet-name>springmvc</servlet-name>  
          </filter-mapping> 

              其中springmvc是DispatcherServlet的名稱

              2.在對(duì)應(yīng)的Controller中,添加對(duì)應(yīng)的請(qǐng)求注解
          /** 進(jìn)入新增 */
          @RequestMapping(value
          ="/new")  
               
          /** 顯示 */  
          @RequestMapping(value
          ="/{id}")  
                
          /** 編輯 */  
          @RequestMapping(value
          ="/{id}/edit")  
               
          /** 保存新增 */  
          @RequestMapping(method
          =RequestMethod.POST)  
               
          /** 保存更新 */  
          @RequestMapping(value
          ="/{id}",method=RequestMethod.PUT)  
                
          /** 刪除 */    
          @RequestMapping(value
          ="/{id}",method=RequestMethod.DELETE)  

          /** 批量刪除 */  
          @RequestMapping(method
          =RequestMethod.DELETE)

              進(jìn)入新增頁面時(shí)沒有用add而是用new,是因?yàn)槟承g覽器會(huì)將add當(dāng)做廣告攔截掉。

              3.頁面請(qǐng)求
          <form:form action="/xxx/xxx" method="put">  
          </form:form>

              生成的頁面代碼會(huì)添加一個(gè)hidden的_method=put,并于web.xml中的HiddenHttpMethodFilter配合使用,在服務(wù)端將post請(qǐng)求改為put請(qǐng)求
          <form id="userInfo" action="/xxx/xxx" method="post">  
              
          <input type="hidden" name="_method" value="put"/>  
          </form> 

              另外也可以用ajax發(fā)送delete、put請(qǐng)求

          posted on 2011-05-18 18:31 初一七月 閱讀(9423) 評(píng)論(5)  編輯  收藏 所屬分類: Web

          評(píng)論

          # re: SpringMVC添加支持Http的delete、put請(qǐng)求  回復(fù)  更多評(píng)論   

          一旦form有屬性
          enctype="multipart/form-data"時(shí),put方法將不會(huì)起作用。
          2012-06-02 13:42 | pch

          # re: SpringMVC添加支持Http的delete、put請(qǐng)求  回復(fù)  更多評(píng)論   

          我認(rèn)為新增和編輯應(yīng)該這樣:
          /** 進(jìn)入新增 */
          @RequestMapping(value="/creator")
          /** 編輯 */
          @RequestMapping(value="/{id}/editor")

          url中無動(dòng)詞,這樣更符合rest的風(fēng)格。
          2012-06-02 14:15 | pch

          # re: SpringMVC添加支持Http的delete、put請(qǐng)求  回復(fù)  更多評(píng)論   

          $.getJSON
          data += "&_method=put";

          后臺(tái)好像不能請(qǐng)求到put方法上去
          2014-10-08 10:56 | 李凡

          # re: SpringMVC添加支持Http的delete、put請(qǐng)求[未登錄]  回復(fù)  更多評(píng)論   

          @李凡
          spring 的 轉(zhuǎn)換必須是POST請(qǐng)求,GET請(qǐng)求是不會(huì)轉(zhuǎn)的。
          2014-12-09 10:58 | 0

          # re: SpringMVC添加支持Http的delete、put請(qǐng)求  回復(fù)  更多評(píng)論   

          444
          2016-08-16 21:00 | 777
          主站蜘蛛池模板: 屯门区| 肃宁县| 晋宁县| 镇安县| 淮安市| 洱源县| 明光市| 延安市| 本溪市| 天峨县| 宕昌县| 定襄县| 临海市| 广饶县| 安岳县| 晋州市| 滨海县| 阿城市| 高碑店市| 公主岭市| 正镶白旗| 凯里市| 巴楚县| 肃南| 镇巴县| 凤凰县| 望奎县| 台南市| 贵港市| 灌南县| 额敏县| 萝北县| 岚皋县| 临泉县| 拉萨市| 高尔夫| 恩平市| 渭南市| 长治县| 通化县| 富阳市|