Spring MVC 的RequestMapping注解

RequestMapping注解

使用说明

  • 作用:用于建立请求URL和处理请求方法之间的对应关系。

  • 出现位置:

    • 类上:

      请求 URL的第一级访问目录。此处不写的话,就相当于应用的根目录。写的话需要以/开头。它出现的目的是为了使我们的 URL 可以按照模块化管理,例如:

      账户模块:

      /account/add

      /account/update

      /account/delete ...

      订单模块:

      /order/add

      /order/update

      /order/delete

      红色的部分就是把RequsetMappding写在类上,使我们的URL更加精细。

    • 方法上:

      请求URL的第二级访问目录,可以窄化请求路径

  • 属性:

    value:用于指定请求的URL。它和path属性的作用是一样的。

    method:用于指定请求的方式。

    注意:以上属性只要出现2个或以上时,他们的关系是与的关系。

窄化路径示例

  • 使用二级目录访问

    md-end-block 复制代码
    <span style="background-color:#f8f8f8"><span style="color:#555555">@Controller</span>
    <span style="color:#555555">@RequestMapping</span>(<span style="color:#aa1111">"/account"</span>)
    <span style="color:#770088">public</span> <span style="color:#770088">class</span> <span style="color:#0000ff">AccountController</span> {
    ​
        <span style="color:#555555">@RequestMapping</span>(<span style="color:#aa1111">"/findAccount"</span>)
        <span style="color:#770088">public</span> <span style="color:#000000">ModelAndView</span> <span style="color:#000000">findAccount</span>() {
            <span style="color:#000000">ModelAndView</span> <span style="color:#000000">mv</span> <span style="color:#981a1a">=</span> <span style="color:#770088">new</span> <span style="color:#000000">ModelAndView</span>();
            <span style="color:#000000">mv</span>.<span style="color:#000000">addObject</span>(<span style="color:#aa1111">"msg"</span>, <span style="color:#aa1111">"欢迎你 springmvc"</span>);
            <span style="color:#000000">mv</span>.<span style="color:#000000">setViewName</span>(<span style="color:#aa1111">"success"</span>);
            <span style="color:#770088">return</span> <span style="color:#000000">mv</span>;
        }
    }</span>
  • 在index.jsp里面定义超链接

    md-end-block 复制代码
    <span style="background-color:#f8f8f8"><span style="color:#117700"><</span><span style="color:#117700">a</span> <span style="color:#0000cc">href</span>=<span style="color:#aa1111">"/account/findAccount"</span><span style="color:#117700">></span>窄化路径<span style="color:#117700"></</span><span style="color:#117700">a</span><span style="color:#117700">></span></span>

method属性示例

  • 描述需要使用指定的请求方式来请求该方法

    md-end-block 复制代码
    <span style="background-color:#f8f8f8"><span style="color:#555555">@Controller</span>
    <span style="color:#555555">@RequestMapping</span>(<span style="color:#aa1111">"/account"</span>)
    <span style="color:#770088">public</span> <span style="color:#770088">class</span> <span style="color:#0000ff">AccountController</span> {
        <span style="color:#aa5500">//指定的请求方式</span>
        <span style="color:#555555">@RequestMapping</span>(<span style="color:#000000">value</span> <span style="color:#981a1a">=</span> <span style="color:#aa1111">"/findAccount1"</span>, <span style="color:#000000">method</span> <span style="color:#981a1a">=</span> <span style="color:#000000">RequestMethod</span>.<span style="color:#000000">POST</span>)
        <span style="color:#770088">public</span> <span style="color:#000000">ModelAndView</span> <span style="color:#000000">findAccount1</span>() {
            <span style="color:#000000">ModelAndView</span> <span style="color:#000000">mv</span> <span style="color:#981a1a">=</span> <span style="color:#770088">new</span> <span style="color:#000000">ModelAndView</span>();
            <span style="color:#000000">mv</span>.<span style="color:#000000">addObject</span>(<span style="color:#aa1111">"msg"</span>, <span style="color:#aa1111">"欢迎你 springmvc"</span>);
            <span style="color:#000000">mv</span>.<span style="color:#000000">setViewName</span>(<span style="color:#aa1111">"success"</span>);
            <span style="color:#770088">return</span> <span style="color:#000000">mv</span>;
        }
    }</span>
  • 测试:在index.jsp里使用get方式请求

    md-end-block 复制代码
    <span style="background-color:#f8f8f8"><span style="color:#117700"><</span><span style="color:#117700">a</span> <span style="color:#0000cc">href</span>=<span style="color:#aa1111">"/account/findAccount1"</span><span style="color:#117700">></span>请求方式<span style="color:#117700"></</span><span style="color:#117700">a</span><span style="color:#117700">></span></span>

    结果:

  • 我们再换一种请求方式

    md-end-block 复制代码
    <span style="background-color:#f8f8f8">  <span style="color:#117700"><</span><span style="color:#117700">form</span> <span style="color:#0000cc">action</span>=<span style="color:#aa1111">"account/findAccount1"</span> <span style="color:#0000cc">method</span>=<span style="color:#aa1111">"post"</span><span style="color:#117700">></span>
        <span style="color:#117700"><</span><span style="color:#117700">input</span> <span style="color:#0000cc">type</span>=<span style="color:#aa1111">"submit"</span> <span style="color:#0000cc">value</span>=<span style="color:#aa1111">"保存账户,post 请求"</span><span style="color:#117700">></span>
      <span style="color:#117700"></</span><span style="color:#117700">form</span><span style="color:#117700">></span></span>

    结果:

相关推荐
RexTechie20 分钟前
Spring Cloud 原生中间件
spring·spring cloud·中间件
chanalbert26 分钟前
Spring Boot诞生背景:从Spring的困境到设计破局
java·spring boot·spring
huisheng_qaq32 分钟前
【Spring源码核心篇-08】spring中配置类底层原理和源码实现
java·spring·spring源码·spring配置类解析·spring注解与实现
LUCIAZZZ1 小时前
项目拓展-Apache对象池,对象池思想结合ThreadLocal复用日志对象
java·jvm·数据库·spring·apache·springboot
武帝为此1 小时前
【SpringMVC 入门介绍】
java·spring·mvc
dearxue2 小时前
你需要的企业级MCP开发来了-Apihug 1.4.1-RELEASE + Plugin 0.7.5 一键让你 Spring 程序拥有企业级MCP 功能!
spring·api·mcp
麦兜*3 小时前
Spring Boot 集成国内AI,包含文心一言、通义千问和讯飞星火平台实战教程
java·人工智能·spring boot·后端·spring·ai·文心一言
llwszx5 小时前
“从HTTP到TCP/IP的旅程“-----深入浅出Java Web通信
java·websocket·网络协议·tcp/ip·spring·http
都叫我大帅哥14 小时前
Spring WebFlux:响应式编程的“未来战士”还是“花架子”?
java·spring·flux
都叫我大帅哥14 小时前
Reactor 深度解析:响应式编程的「核反应堆」是如何工作的?
java·spring