码迷,mamicode.com
首页 > 其他好文 > 详细

使用注解映射请求参数

时间:2020-01-26 11:50:04      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:两种   for   表单   渲染   erro   form表单   delete   进入   -name   

使用@RequestMapping映射请求

  (1)使用请求URL映射请求:

    1,SpringMVC使用@RequestMapping注解为控制器指定可以处理哪些URL请求

      2,标注在类定义处:提供初步的请求映射信息。相对于WEB应用的根目录

        标注在方法处:提供进一步的细分映射信息。相对于类定义处的URL,若类定义处未标注@RequestMapping,则方法处标记的URL相对于WEB应用的根目录。

    3,DispatcherServlet截获请求后,就通过控制器上@RequestMapping提供的映射信息确定请求所对应的处理方法

  (2)还可以使用请求方法,请求参数及请求头映射请求

    @RequestMappingvalue,method,params及heads分别表示请求URL,请求方法,请求参数及请求头的映射条件,他们之间是与的关系,联合使用可使请求映射更加精确。

  技术图片

 

如:

即为映射URL为/testParamsAndHeaders,且包含参数username及值不等于10的age参数的请求

@RequestMapping(value="/testParamsAndHeaders",params= {"username","age!=10"})

 

二,使用@PathVariable映射URL绑定的占位符

  通过@PathVariable可以将URL中占位符参数绑定到控制器处理方法的入参中

  技术图片

 

 三,REST(即Representational State Transfer)资源表现层状态转换。

  状态转换就是HTTP协议里面,四个表示操作方式的动词:GET,POST,PUT,DELETE。分别对应四种操作:GET用来获取找资源,POST用来新建资源,PUT用来更新资源,DELETE用来删除资源。

  技术图片

 

 

 

  HiddenHttpFilter:浏览器form表单只支持GET与POST请求,而DELETE,PUT等method并不支持,Spring3.0添加了一个过滤器,可以将这些请求转换为标准的http方法,使得支持这四种请求。

①配置filter

 <!-- 配置 HiddenHttpMethodFilter-->
  <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>

②客户端发起请求:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <form action="springmvc/testRest/1" method="post">
    <input type="hidden" name="_method" value="DELETE"/>
    <input type=submit value="TestRest DELETE"/>
    </form>
    <br><br>
    
    <form action="springmvc/testRest/1" method="post">
    <input type="hidden" name="_method" value="PUT"/>
    <input type=submit value="TestRest PUT"/>
    </form>
    <br><br> 
    
    <form action="springmvc/testRest" method="post">
    <input type=submit value="TestRest POST"/>
    </form>
    <br><br>
    
    <a href="springmvc/testRest/1">Test Rest Get</a>
    <br><br>
    <a href="springmvc/testParamsAndHeaders?username=boogie3&age=10">TestParamsAndHeaders</a>
    
    
    <br><br>
    <form action="springmvc/testMethod" method="post">
        <input type=submit value=submit>
    </form>
    <a href="springmvc/testMethod">test Method</a>
    
    <br><br>
    <a href="HelloWorld">Hello World</a>
    <br><br>
    <a href="springmvc/testRequestMapping">test RequestMapping</a>
</body>
</html>

3,编写后端控制器

在tomcat8上面是不支持delete和post请求的,因此以上只能在tomcat7上面执行

tomcat8运行时可以进入到相应的控制器,但是视图渲染返回的时候,由于不支持这两种方法,就会报出异常页面

技术图片

 

改正方法一:在执行完跳转的JSP页面加上isErrorPage="true";

技术图片

 

 运行结果为:

技术图片

 

 

技术图片

 

使用注解映射请求参数

标签:两种   for   表单   渲染   erro   form表单   delete   进入   -name   

原文地址:https://www.cnblogs.com/boogie-xy/p/12233977.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!