SpringMVC注解及使用规则


前言

提示:这里可以添加本文要记录的大概内容:

在学习SpringMVC中,我们会经常用到注解来简化我们的工作,接下来将为大家简单介绍一下常用的注解


提示:以下是本篇文章正文内容,下面案例可供参考

一、SpringMVC注解是什么?

Spring MVC 是一种基于注解的开发方式,它使得开发者可以更加便捷地编写控制器、映射请求和处理请求。以下是一些常用的 Spring MVC 注解及其功能:

  1. @Controller:用于标识一个类作为 Spring MVC 中的控制器。Spring 会自动检测并注册这些类。

  2. @RequestMapping:用于映射 HTTP 请求到相应的处理方法上。可以用在类级别或方法级别。在类级别上指定了基本的 URL 路径,在方法级别上指定了额外的路径或请求方法。

  3. @GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping:分别用于处理 GET、POST、PUT、DELETE、PATCH 请求,是 @RequestMapping 的缩写形式。

  4. @RequestParam:用于从请求中获取参数值。可以指定参数名、是否必需以及默认值。

  5. @PathVariable:用于从请求路径中获取参数值。

  6. @RequestBody:用于将 HTTP 请求体转换为 Java 对象。常用于处理 POST 请求中的 JSON 或 XML 数据。

  7. @ResponseBody:用于将方法的返回值直接作为 HTTP 响应体返回给客户端。常用于返回 JSON 或 XML 格式的数据。

  8. @ModelAttribute:用于将请求参数绑定到方法的参数上,也可以用于在请求处理方法执行之前为模型对象添加属性。

  9. @SessionAttribute:用于将模型对象添加到 session 中,这样可以在多个请求之间共享数据。

  10. @SessionAttributes:类级别的注解,用于指定哪些模型属性应该存储在 session 中。

  11. @InitBinder:用于定制数据绑定规则,例如日期格式化、数据校验等。

  12. @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“标记出来了,大家有空可以看看哦。

  • 33
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值