SpringMVC(八) RequestMapping HiddenHttpMethodFilter

SpringMVC隐藏方法:

使用PUT和DELETE方法。默认HTML支持GET和POST方法。通过HiddenHttpMethodFilter将POST转成PUT和DELETE方法。

1、将HiddenHttpMethodFilter配置到web.xml中

    <filter>
        <filter-name>HiddenHttpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>HiddenHttpMethodFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    

2、控制器代码

package com.tiekui.springmvc.handlers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class HiddenHttpMethodFilterTest {
    @RequestMapping(value="testHiddenHttpMethod/{id}",method=RequestMethod.DELETE)
    public String testHiddenHttpMethodDelete(@PathVariable("id") Integer id){
        System.out.println("Delete" + id);
        return "success";
    }

    @RequestMapping(value="testHiddenHttpMethod/{id}",method=RequestMethod.PUT)
    public String testHiddenHttpMethodPut(@PathVariable("id") Integer id){
        System.out.println("PUT" + id);
        return "success";
    }

}

3、视图代码

    <form action="testHiddenHttpMethod/1" method="post">
        <input type="hidden"  name="_method" value="PUT">
        <input type="submit" value="testHiddenHttpMethodPUT">
    </form>
    <br>
    <form action="testHiddenHttpMethod/1" method="post">
        <input type="hidden"  name="_method" value="DELETE">
        <input type="submit" value="testHiddenHttpMethodDelete">
    </form>
时间: 2024-10-17 15:41:00

SpringMVC(八) RequestMapping HiddenHttpMethodFilter的相关文章

SpringMVC在@RequestMapping配置两个相同路径

这篇博客来自这个问题: 在SpringMVC中@RequestMapping可以配置两个相同的url路径吗. 首先,这个问题会点SpringMVC的人可能都知道答案,但是上次面试中我就回答了可以...可以..Spicy Chicken!!! 参考文章: http://lgbolgger.iteye.com/blog/2105108 这个问题要从 RequestMappingHandlerMapping 和 RequestMappingHandlerAdapter 讲起了. 首先,在配置文件中声明

SpringMVC(三) RequestMapping修饰类

SpringMVC使用@RequestMapping 注解为控制器指定可以处理哪些URL请求. 可以用于类定义以及方法定义: 类定义:提供初步的请求映射信息.相对于WEB应用的根目录. 方法处:提供进一步的细分映射信息.相对于类定义处的URL.若类定义处没有定义,则是相对于根目录. 如:针对类设置了@RequestMapping("pathclass")注解,针对方法设置了@RequestMapping("method"),则最终调用到方法的url为pathclas

springmvc注解@RequestMapping

springmvc注解@RequestMapping 1.处理器.controller的url 2)跟路径+子路径. 3)限定提交方法 @RequestMapping的属性method: 1.RequestMehtod.Get 2.RequestMethod.POST 常用的两个. 原文地址:https://www.cnblogs.com/meiLinYa/p/8761328.html

SpringMVC注解@RequestMapping之produces属性导致的406错误

废话不多说,各位,直接看图说话,敢吗?这个问题网上解决的办法写的狠是粗糙,甚至说这次我干掉它完全是靠巧合,但是也不否认网上针对406错误给出的解决方式,可能是多种情况下出现的406吧?我这次的流程就是集成了MyBatis的分页插件,简单实现了一个分页功能,最后将数据返回给浏览器,就因为我的随手一粘贴,才引发了这场406,别忘了各位看图说话. 我首先说说我的惨痛经历吧,一直对spring框架的AOP原理狠是模糊,就在上周五自己想好好研究一下,但是很多美好的事情都不是那么一路绿灯,磕磕绊绊总算是差不

【SpringMVC】---RequestMapping、Ant 路径、PathVariable 注解、HiddenHttpMethodFilter 过滤器、用 POJO 作为参数

一.web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/

SpringMVC中 -- @RequestMapping的作用及用法

一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置 <servlet> <servlet-name>servletName</servlet-name> <servlet-class>ServletClass</servlet-class> </servlet> <ser

SpringMVC(十一) RequestMapping获取Cookie值

可以在控制器方法中使用类似@CookieValue("JSESSIONID") String sessionID的方式,来获取请求中的Cookie的值. 样例控制器代码 package com.tiekui.springmvc.handlers; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.CookieValue; import org.

SpringMVC(九) RequestMapping请求参数

通过在控制器方法中使用@RequestParam(value="参数名",require=true/false,defaultvalue="")的方式,使在URL中传入参数. 控制器代码: package com.tiekui.springmvc.handlers; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.Requ

SpringMVC(七) RequestMapping 路径中带占位符的URL

使用方法:在@RequestMapping("/delete/{id}")中,通过{id}带入pathvariable,然后在方法中,通过@PathVariable("变量名称") Iteger id 的方式引入占位符. 控制器代码: package com.tiekui.springmvc.handlers; import org.springframework.stereotype.Controller; import org.springframework.w