详解SpringMVC常用注解功能及属性

下面是详解SpringMVC常用注解功能及属性的攻略。

一、@RequestMapping注解

1.1 作用

@RequestMapping注解用于映射请求路径和处理方法之间的关系。使用@RequestMapping注解, 可以定义URL的请求方式(GET/POST)、请求参数和响应结果等。

1.2 属性

  • value: 请求的URL路径或URL模式,支持Ant-style路径或正则表达式
  • method: 请求的HTTP方法类型,比如GET、POST、PUT等
  • params: 请求需要的参数,支持简单的表达式,比如“param1=value1&param2=value2”
  • headers: 请求需要的头信息,支持简单的表达式,比如“Accept-Language=en-US,zh;q=0.8”

1.3 示例

1.3.1 设置单个请求路径

@Controller
@RequestMapping("/user")
public class UserController {

    @RequestMapping("/hello")
    public String sayHello() {
        return "hello";
    }
}

上面示例中:

  • 类级别的@RequestMapping注释/user定义了此控制器中所有处理程序方法的基本URL。
  • 方法级别的@RequestMapping注释/hello定义了处理程序方法的特定URL。

当执行/user/hello请求时,该框架将调用sayHello()方法,并将其结果解释为视图名称,然后查找与该视图名称相关联的视图。

1.3.2 设置多个请求路径

@Controller
@RequestMapping({"/user", "/member"})
public class UserController {

    @RequestMapping("/hello")
    public String sayHello() {
        return "hello";
    }
}

上面示例中,@RequestMapping注解中定义了多个请求路径,当执行/user/hello和/member/hello请求时,都会调用sayHello()方法。

二、@PathVariable注解

2.1 作用

@PathVariable注解表示请求路径中的一部分可以作为服务方法的参数,方便领域对象的多层结构路径展示,例如查询用户详情/user/{userId}。@PathVariable可以将URI模板中的变量(如/{varName})绑定到处理程序的方法参数上。

2.2 属性

  • value: 关联URI模板变量值和处理器方法参数的名称
  • required: 指示URI模板变量是否必须存在,默认为true

2.3 示例

@Controller
@RequestMapping("/user")
public class UserController {

    @GetMapping("/{id}")
    public String getUserById(@PathVariable("id") Long userId, Model model) {
        User user = userService.getUserById(userId);
        model.addAttribute("user", user);
        return "userDetail";
    }
}

上面示例中的@GetMapping注解指定HTTP GET请求方法,"{id}"指URI模板变量,@PathVariable注解表示将URI模板变量绑定到方法参数"userId"上。方法入参名和URI模板变量名默认一致,所以@RequestParam注解可以不指定value属性。

当执行/user/123请求时,路径中的123会绑定到方法参数userId上,然后调用getUserById方法,并将查询出的User对象绑定到Model中返回到视图层。

三、@RequestParam注解

3.1 作用

@RequestParam注解用于将请求参数的值绑定到方法参数上,是SpringMVC处理页面请求的基础注解。在@RequestParam注解中有一个value属性,用来指定请求参数的名称;还有一个required属性,用来指定请求参数是否是必须的,若参数不是必须的,但请求中没有包含该参数,则会将该参数值设置为null。

3.2 属性

  • value: 请求参数的名称
  • required: 指示请求参数是否必须存在,默认为true
  • defaultValue: 指示当请求参数不存在时,要绑定的默认值

3.3 示例

@Controller
@RequestMapping("/user")
public class UserController {

    @RequestMapping("/search")
    public String searchUser(@RequestParam("name") String userName, Model model) {
        List<User> userList = userService.searchUserByName(userName);
        model.addAttribute("userList", userList);
        return "userList";
    }
}

上面示例中的@RequestParam注解指定了请求参数名称为"name",绑定到了方法参数userName上。当执行/user/search?name=Jack请求时,就会将"Jack"这个参数绑定到userName上,然后调用searchUser方法查询用户信息。

如果在请求中不存在"name"参数,将会抛出MissingServletRequestParameterException异常。可以设置required属性为false或指定defaultValue来解决这个问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解SpringMVC常用注解功能及属性 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • 如何使用RequestHeaders添加自定义参数

    当我们使用HTTP请求时,有时需要添加自定义参数到请求头中,以便服务器能够正确处理请求。这可以通过使用RequestHeaders来实现。以下是如何使用RequestHeaders添加自定义参数的完整攻略: 打开开发者工具:在浏览器中打开需要添加自定义参数的网页,然后按下F12键打开开发者工具。 打开Network选项卡:在开发者工具中,选择Network选…

    http 2023年5月13日
    00
  • HTTP请求方法有哪些?

    HTTP请求方法决定了浏览器向服务器请求什么样的操作。常用的HTTP请求方法包括GET、POST、PUT、DELETE、HEAD、OPTIONS等,下面我们来逐一讲解。 1. GET方法 GET方法是最常用的HTTP请求方法之一,它通常用来从服务器上获取资源,也可以用来传递少量数据。GET请求会把请求参数放在URL的后面,例如: http://example…

    Http网络协议 2023年4月20日
    00
  • vue脚手架安装以及安装失败问题解决办法

    接下来我将详细讲解“vue脚手架安装以及安装失败问题解决办法”的完整攻略,以下是具体步骤: 第一步:安装node.js 在使用vue脚手架之前,需要先安装node.js。可以到node官网下载安装包,根据自己的系统选择对应的版本,下载完成后安装即可。 第二步:全局安装vue脚手架 在安装完node.js后,使用npm命令安装vue脚手架。 打开终端或命令行窗…

    http 2023年5月13日
    00
  • vue设置代理不起作用问题及解决

    针对”vue设置代理不起作用问题及解决”,我会给出完整的攻略,包括以下内容: 问题描述; 解决思路; 具体操作流程; 验证代理是否设置成功。 接下来,我们一步步来详细讲解。 问题描述 在Vue项目开发中,我们有时需要请求其他服务器的数据,而这个请求的服务器还没有部署到正式环境,但我们有这个服务器的开发环境可以使用。此时,我们需要通过代理的方式进行访问,否则就…

    http 2023年5月13日
    00
  • CentOS 6.5上的Tomcat启动报错问题解决方法

    CentOS6.5上的Tomcat启动报错问题解决方法 什么是Tomcat? Tomcat是一个开源的Web应用服务器,由Apache软件基金会开发。Tomcat支持Java ServletJava Pages(JSP)等技术,可以用于开发和部署Java Web应用程序。 Tomcat启动报错问题的原因 Tomcat动报错问题的原因可能有很多,例如配置文件错…

    http 2023年5月13日
    00
  • Flex文件读取报错示例

    关于“Flex文件读取报错示例”的完整攻略,请参考以下步骤: 1. 确认报错信息 首先,当您在使用Flex读取文件时遇到报错,应该仔细阅读提示信息并确认其内容。根据报错信息的不同,您可能需要采取不同的解决方案。 以下是两个可能的报错示例: 示例1:错误提示“file not found” 假设您的代码中包含以下语句: yyin = fopen("d…

    http 2023年5月13日
    00
  • springboot如何将http转https

    以下是关于“Springboot如何将HTTP转HTTPS”的完整攻略: 问题描述 在使用Springboot开发Web应用时,可能需要将HTTP协议转为HTTPS协议以提高应用的安全性。本文将详细介绍如何将Springboot应用程序从HTTP协议转换为HTTPS协议。 解决步骤 以下是将Springboot应用程序从HTTP协议转换为HTTPS协议的步骤…

    http 2023年5月13日
    00
  • npm ERR! code 128的错误问题解决方法

    问题描述: 当我们使用npm install命令安装包时,有时会遇到“npm ERR! code 128”的错误,这种错误通常表示npm无法找到或访问所需的资源。 解决方法: 清除npm cache 可以尝试清除npm的缓存,然后再次运行npm install命令,这通常可以解决问题。在终端中输入以下命令: npm cache clean –force 请…

    http 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部