web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<!-- 配置 org.springframework.web.filter.HiddenHttpMethodFilter: 可以把 POST 
请求转为 DELETE 或 POST 请求 -->
<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>
<!-- 配置 DispatcherServlet -->
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置 DispatcherServlet 的一个初始化参数: 配置 SpringMVC 配置文件的位置和名称 -->
<!-- 实际上也可以不通过 contextConfigLocation 来配置 SpringMVC 的配置文件, 而使用默认的. 默认的配置文件为: 
/WEB-INF/<servlet-name>-servlet.xml <init-param> <param-name>contextConfigLocation</param-name> 
<param-value>classpath:springmvc.xml</param-value> </init-param> -->
<load-on-startup>1</load-on-startup>
</servlet> <!-- Map all requests to the DispatcherServlet for handling -->
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>@RequestMapping(value="/Hello",method=RequestMethod.GET)
@Controller
public class Hello {
private static final String SUCCESS = "success";

@RequestMapping(value = "/testRest/{id}", method = RequestMethod.PUT)
public String testRestPut(@PathVariable Integer id) {
System.out.println("testRest Put: " + id);
return SUCCESS;
} @RequestMapping(value = "/testRest/{id}", method = RequestMethod.DELETE)
public String testRestDelete(@PathVariable Integer id) {
System.out.println("testRest Delete: " + id);
return SUCCESS;
} @RequestMapping(value = "/testRest", method = RequestMethod.POST)
public String testRest() {
System.out.println("testRest POST");
return SUCCESS;
} @RequestMapping(value = "/testRest/{id}", method = RequestMethod.GET)
public String testRest(@PathVariable Integer id) {
System.out.println("testRest GET: " + id);
return SUCCESS;
}
/**
 * 了解: 可以使用 params 和 headers 来更加精确的映射请求. params 和 headers 支持简单的表达式.
 * 
 * @return
 */
@RequestMapping(value="hello",method=RequestMethod.GET,
params={"name","id!=1"},headers = { "Accept-Language=zh-CN,zh;q=0.8"})
public String hello(){ System.out.println("Hello");
return SUCCESS; }
/**
 * @PathVariable 可以来映射 URL 中的占位符到目标方法的参数中.
 * @param id
 * @return
 */
@RequestMapping("/testPathVariable/{id}")
public String testPathVariable(@PathVariable("id") Integer id) {
System.out.println("testPathVariable: " + id);
return SUCCESS;
}}
jspye'm

解决方案 »

  1.   

    jsp
    <form action="${pageContext.request.contextPath }/Hello/testRest/1" method="post">
    <input type="hidden" name="_method" value="PUT"/>
    <input type="submit" value="TestRest PUT"/>
    </form>
    <br><br>

    <form action="Hello/testRest/1" method="post">
    <input type="hidden" name="_method" value="DELETE"/>

    <input type="submit" value="TestRest DELETE"/>
    </form>
    <br><br>

    <form action="Hello/testRest" method="post">
    <input type="submit" value="TestRest POST"/>
    </form>
    <br><br>

    <a href="Hello/testRest/1">Test Rest Get</a>
    <br><br>