本文主要是介绍Springmvc常用的注解代码示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《Springmvc常用的注解代码示例》本文介绍了SpringMVC中常用的控制器和请求映射注解,包括@Controller、@RequestMapping等,以及请求参数绑定注解,如@Request...
一、控制器与请求映射注解
1. @Controller
- 作用:标识当前类为 SpringMVC 控制器,由 Spring 容器自动扫描管理。
- 代码示例:
@Controller // 标识此类为控制器 @RequestMappinandroidg("/user") public class UserController { // 控制器方法... }
- 讲解:需配合配合 Spring 配置文件中开启组件扫描(
<context:component-scan base-package="com.qcby"/>),否则才能使注解生效。
2. @RequestMappinphpg
- 作用:映射请求 URL 与控制器方法的对应关系,可标注在类或方法上。
- 代码示例php:
@Controller
@RequestMapping("/user") // 类级路径(基础路径)
public class UserController {
// 方法级路径,完整 URL 为 /user/save
@RequestMapping(
value = "/save",
method = RequestMethod.POST, // 限制请求方式为 POST
params = "username" // 要求请求必须携带 username 参数
)
public String save() {
System.out.println("用户保存成功");
return "success";
}
}- 讲解:
- 类级注解 + 方法级注解组合成完整请求路径(如
/user/save)。 method属性指定允许的请求方式(GET/POST 等),不指定则允许所有方式。params属性用于校验请求参数,确保请求携带指定参数。
- 类级注解 + 方法级注解组合成完整请求路径(如
二、请求参数绑定注解
1. @RequestParam
- 作用:解决请求参数名与方法参数名不一致的问题,强制绑定参数。
- 代码示例:
@RequestMapping("/find")
public String find(
@RequestParam(
value = "name", // 映射请求参数名(前端传递的参数名为 name)
required = false, // 非必须传递,默认值为 true
defaultValue = "guest" // 无参数时的默认值
) String username
) {
System.out.println("用户名:" + username);
php return "success";
}- 讲解:若前端传递参数为
name=张三,通过@RequestParam可映射到方法参数username。
2. @RequestBody
@RequestMapping("/getBody")
public String getBody(@RequestBody String requestBody) {
System.out.println("请求体内容:" + requestBody); // 输出原始请求数据
return "success";
}- 讲解:常用于接收前端发送的 JSON 数据(需配合 Jackson 等 JSON 解析依赖),直接获取字符串形式的请求体。
3. @RequestHeader
- 作用:获取 HTTP 请求头中的信息(如浏览器类型、Accept 格式等)。
- 代码示例:
@RequestMapping("/getHeader")
public String getHeader(@RequestHeader("User-Agent") String userAgent) {
System.out.println("浏览器信息:" + userAgent); // 输出浏览器类型信息
return "success";
}- 讲解:通过参数
value指定请求头名称,可获取客户端的环境信息。
4. @CookieValue
- 作用:获取请求中携带的 Cookie 值(如 JSESSIONID)。
- 代码示例:
@RequestMapping("/getCookie")
public String getCookie(@CookieValue("JSESSIONID") String sessionId) {
System.out.println("会话 ID:" + sessionId); // 输出当前会话的 JSESSIONID
return "success";
}- 讲解:用于获取客户端存储的 Cookie 数据,常用于会话跟踪。
5. @DateTimeFormat
- 作用:指定日期类型参数的解析格式,解决字符串与
Date类型的转换问题。 - 代码示例:
public class User {
private String username;
// 指定日期格式为 yyyy-MM-dd HH:mm:ss
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date birthday;
// getter/setter 省略
}- 控制器方法:
@RequestMapping("/saveUser")
public String saveUser(User user) {
System.out.println("生日:" + user.getBirthday()); // 自动转换为 Date 类型
return "success";
}- 讲解:前端传递
birthday=2023-10-01 12:00:00时,会自动解析为Date对象。
三、其他常用注解(扩展)
1. @PathVariable(REST 风格)
- 作用:获取 URL 路径中的参数(适用于 RESTful 接口)。
- 代码示例:
@RequestMapping("/user/{id}")
public String getUserById(@PathVariable("id") Integer userId) {
System.out.println("用户 ID:" + userId); // 获取路径中的 id 参数
return "success";
}- 讲解:请求 URL 为
/user/100时,userId会被赋值为 100。
2. @ResjavascriptponseBody
- 作用:将方法返回值直接作为响应体返回(而非跳转视图),常用于 AJAX 请求。
- 代码示例:
@RequestMapping("/getJson")
@ResponseBody // 返回 JSON 数据,而非视图
public User getJson() {
User user = new User();
user.setUsername("张三");
return user; // 需配合 Jackson 依赖,自动转换为 JSON
}- 讲解:需在 Spring 配置文件中开启
<mvc:annotation-driven/>以支持 JSON 转换。
四、注解使用注意事项
- 路径冲突:
@RequestMapping标注的路径需唯一,避免不同方法映射同一 URL。 - 参数校验:
@RequestParam的required=true时,若前端未传参数会抛出异常,需注意处理。 - 日期转换优先级:自定义类型转换器(实现
Converter接口)优先级高于@DateTimeFormat。 - 配置支持:所有注解需在 Spring 配置文件中开启
<mvc:annotation-driven/>才能生效(自动注册处理器映射器和适配器)。
到此这篇关于Springmvc常用的注解代码示例的文章就介绍到这了,更多相关Springmvc注解内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.chinasem.cn)!
这篇关于Springmvc常用的注解代码示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!