文章目录
- 前言
- 一、SpringMVC注解是什么?
- 二、使用步骤
- 1.注解使用
- 2创建JSP
- 3 SpringMVC视图
- 1. 逻辑视图(Logical View)
- 2. 物理视图(Physical View)
- 区别和关系
- 4 SpringMVC注解总结
- 总结
前言
提示:这里可以添加本文要记录的大概内容:
在学习SpringMVC中,我们会经常用到注解来简化我们的工作,接下来将为大家简单介绍一下常用的注解
提示:以下是本篇文章正文内容,下面案例可供参考
一、SpringMVC注解是什么?
Spring MVC 是一种基于注解的开发方式,它使得开发者可以更加便捷地编写控制器、映射请求和处理请求。以下是一些常用的 Spring MVC 注解及其功能:
-
@Controller:用于标识一个类作为 Spring MVC 中的控制器。Spring 会自动检测并注册这些类。
-
@RequestMapping:用于映射 HTTP 请求到相应的处理方法上。可以用在类级别或方法级别。在类级别上指定了基本的 URL 路径,在方法级别上指定了额外的路径或请求方法。
-
@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping:分别用于处理 GET、POST、PUT、DELETE、PATCH 请求,是 @RequestMapping 的缩写形式。
-
@RequestParam:用于从请求中获取参数值。可以指定参数名、是否必需以及默认值。
-
@PathVariable:用于从请求路径中获取参数值。
-
@RequestBody:用于将 HTTP 请求体转换为 Java 对象。常用于处理 POST 请求中的 JSON 或 XML 数据。
-
@ResponseBody:用于将方法的返回值直接作为 HTTP 响应体返回给客户端。常用于返回 JSON 或 XML 格式的数据。
-
@ModelAttribute:用于将请求参数绑定到方法的参数上,也可以用于在请求处理方法执行之前为模型对象添加属性。
-
@SessionAttribute:用于将模型对象添加到 session 中,这样可以在多个请求之间共享数据。
-
@SessionAttributes:类级别的注解,用于指定哪些模型属性应该存储在 session 中。
-
@InitBinder:用于定制数据绑定规则,例如日期格式化、数据校验等。
-
@ExceptionHandler:用于捕获并处理控制器中抛出的异常。
这些注解使得 Spring MVC 的开发变得更加简洁和灵活,提高了开发效率和代码的可读性。
二、使用步骤
1.注解使用
首先我们想要开启SpringMVC注解要开启注解支持,所以我们在springmvc.xml文件中添加以下配置:
<!--开启注解支持-->
<context:component-scan base-package="com.llf"/>
<!--配置视图解析器 也就是逻辑视图配置 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 返回视图页面的前缀 -->
<property name="prefix" value="/WEB-INF/jsp/"/> <!-- 返回页面的后缀 -->
<property name="suffix" value=".jsp"/>
</bean>
<bean id="charsetFilter" class="org.springframework.web.filter.CharacterEncodingFilter">
<property name="encoding" value="UTF-8"/>
<property name="forceEncoding" value="true"/>
</bean>
2.在控制层添加注解
@Controller//将类声明为控制层类
public class UserController {
@GetMapping("/user") //get请求地址映射为"/user"
public String query(Model model) {
model.addAttribute("name", "张三");
model.addAttribute("age", "18");
return "user";
}
@PostMapping("/user") //posst请求地址映射为"/user"
public String addUser(User user, Model model) { //User 为javaaBean用于接受多个参数 Model视图对象,用于传递参参数
model.addAttribute("name", user.getName());
model.addAttribute("age", user.getAge());
System.out.println(user.getName() + "------------" + user.getAge());
return "user";
}
}
2创建JSP
简单写一个添加用户的操作jsp页面:
addUser.jsp代码:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form method="post" action="user">
姓名:<label>
<input type="text" name="name">
</label><br>
年龄:<label>
<input type="number" name="age">
</label><br>
<input type="submit" value="保存">
</form>
</body>
</html>
user.jsp用于查看用户信息,代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>无敌暴龙战神</title>
</head>
<body>
<label>
姓名:${name}
</label><br/>
<label>
年龄:${age}
</label>
</body>
</html>
注意:isELIgnored="false"
千万别忘记写上,不如el表达式无效,页面渲染不上。
3 SpringMVC视图
在 Spring MVC 中,视图(View)是用于呈现用户界面的组件。Spring MVC 中的视图可以分为逻辑视图和物理视图。
1. 逻辑视图(Logical View)
逻辑视图是一个视图的逻辑名称,它通过控制器(Controller)返回的字符串来表示。当控制器处理完请求后,会返回逻辑视图的名称,Spring MVC 根据这个名称来决定使用哪个物理视图来渲染最终的用户界面。逻辑视图的名称通常与视图解析器(View Resolver)相关联,视图解析器负责将逻辑视图映射到实际的物理视图。
2. 物理视图(Physical View)
物理视图是真正呈现给用户的视图,它可以是一个 JSP、Thymeleaf 模板、FreeMarker 模板、Velocity 模板或者其他类型的视图技术。物理视图可以包含 HTML、CSS、JavaScript 等前端资源,以及从控制器传递过来的数据,最终呈现给用户。
区别和关系
- 逻辑视图是控制器返回的视图名称,它是一个逻辑标识符,而不是真正的视图文件名或路径。
- 物理视图是实际用于渲染用户界面的视图文件或模板文件。
- Spring MVC 中的视图解析器(View Resolver)负责将逻辑视图映射到实际的物理视图。
举例来说,一个控制器方法返回字符串 “welcome” 作为逻辑视图名称。然后,视图解析器会根据这个逻辑视图名称找到对应的物理视图,比如一个 JSP 文件 welcome.jsp
,最终将其呈现给用户。
Spring MVC 中通过配置视图解析器来实现逻辑视图到物理视图的映射,这样可以在控制器中更专注于业务逻辑,而视图的具体呈现则交由视图解析器处理。
4 SpringMVC注解总结
@Controller 用于传统的 MVC 应用,它处理 HTTP 请求并返回视图。
@RestController 用于构建 RESTful Web 服务,它处理 HTTP 请求并直接返回数据,通常以 JSON 或 XML 格式返回。
@ReponseBody 将方法返回值写入response中,既返回文本数据或json数据
@EnableWebMvc 启用MVC注解驱动
总结
SpringMVC注解有很多,主要用的都在上图上用”1“标记出来了,大家有空可以看看哦。