SpringMVC注解及使用规则

文章目录

  • 前言
  • 一、SpringMVC注解是什么?
  • 二、使用步骤
    • 1.注解使用
    • 2创建JSP
    • 3 SpringMVC视图
      • 1. 逻辑视图(Logical View)
      • 2. 物理视图(Physical View)
      • 区别和关系
    • 4 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“标记出来了,大家有空可以看看哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/780238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建立一个简单的网页音乐盒模型效果#css#h5

“音乐盒”可以看做一个大盒子&#xff0c;用<div>标签进行定义。大盒子的上面为文本内容&#xff0c;可以在<div>标签中嵌套<h2>和<p>标签来实现&#xff1b;大盒子下面为图像&#xff0c;通过在<div>标签中嵌套<img/>标签来实现。 样式…

[Python人工智能] 四十五.命名实体识别 (6)利用keras构建CNN-BiLSTM-ATT-CRF实体识别模型(注意力问题探讨)

从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前文讲解融合Bert的实体识别研究,使用bert4keras和kears包来构建Bert+BiLSTM-CRF模型。这篇文章将详细结合如何利用keras和tensorflow构建基于注意力机制的CNN-BiLSTM-ATT-CRF模型,并实现中文实体识别…

notepad++里安装32位和64位的16进制编辑器Hex-Editor

这个16进制编辑器确实是个好东西&#xff0c;平时工作种会经常用到&#xff0c; 这是hex-editor的官网。这个里边只能下载32位的(64位的看最下边)&#xff0c;选一个合适的版本&#xff0c;我当时选的是最新的版本 https://sourceforge.net/projects/npp-plugins/files/Hex%20E…

ARP协议定义及工作原理

ARP的定义 地址解析协议(Address Resolution Protocol&#xff0c;ARP)&#xff1a;ARP协议可以将IPv4地址(一种逻辑地址)转换为各种网络所需的硬件地址(一种物理地址)。换句话说&#xff0c;所谓的地址解析的目标就是发现逻辑地址与物理地址的映射关系。 ARP仅用于IPv4协议&a…

Centos服务器Open Gauss 部署

近期很多的项目由于信创要求使用一些国产的数据库&#xff0c;比如OpenGauss。OpenGuass是华为高斯DB的开源版&#xff0c;内核还是PostgreSQL&#xff0c;商业版是收费的。这里记录一下是如何安装部署 的。 官方中文文档 官方下载地址 部署要求 操作系统要求 ARM&#xff…

拆分巨石:将MVPS和MVAS应用于遗留应用程序——可持续架构(六)

前言 MVP 和 MVA 的概念不仅适用于新应用程序&#xff1b;它们提供了一种新颖的方式来审视对遗留系统的范围变更&#xff0c;以防止过快地承担过多的变化 - 参见图1。MVA 可以帮助组织评估和更新其技术标准&#xff0c;通过展示新技术如何真正对支持 MVP 至关重要。创建 MVA 可…

绿联 安装PDF工具

这是一个强大的本地托管的基于 Web 的 PDF 操作工具&#xff0c;使用 docker&#xff0c;允许您对 PDF 文件执行各种操作&#xff0c;例如拆分、合并、转换、重组、添加图像、旋转、压缩等。这个本地托管的 Web 应用程序最初是 100% ChatGPT 制作的应用程序&#xff0c;现已发展…

BaseDao封装增删改查

文章目录 什么是BaseDao操作代码增删改查询单个数据查询多个数据 总结 什么是BaseDao BaseDao是&#xff1a; 数据库里负责增加&#xff0c;删除&#xff0c;修改&#xff0c;查询 具体来说是一种接口代码,公共方法的接口类。 在dao层新建basedao,其他dao层接口继承basedao 相…

代码随想录算法训练营第二十三天(二叉树9)|669. 修剪二叉搜索树、108. 将有序数组转换为二叉搜索树、538. 把二叉搜索树转换为累加树(JAVA)

文章目录 669. 修剪二叉搜索树解题思路源码 108. 将有序数组转换为二叉搜索树解题思路源码 538. 把二叉搜索树转换为累加树解题思路源码 669. 修剪二叉搜索树 给你二叉搜索树的根节点 root &#xff0c;同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树&#xff0c;使…

【医学嵌入模型】中文医疗文本处理大模型 PCL-MedBERT

中文医疗文本处理大模型 PCL-MedBERT 提出背景对ELECTRA限制的深入分析eHealth的创新方法实体识别关系抽取 总结 最近再做医学项目&#xff0c;需要从文本中抽取医学概念和关系&#xff0c;通用模型的抽取效果还可以。 但还想找医学嵌入模型&#xff0c;能够更准确地从文本中识…

常见的Nginx+Redis+MQ+DB架构设计

三高&#xff0c;复杂的架构 SQRS CAP 缓存&#xff0c;限流 【Redis&#xff0c;缓存】 cache-aside 缓存cache&#xff1a;数据源的副本 store 1. Read/Write Through Pattern 读写穿透模式 redis&#xff1a;放当前在线用户&#xff0c;热点数据

第十四届蓝桥杯第十题:蜗牛分享

问题描述 输入格式 输出格式 输出共一行&#xff0c;一个浮点数表示答案&#xff08;四舍五入保留两位小数&#xff09;。 样例输入 3 1 10 11 1 1 2 1样例输出 4.20样例说明 蜗牛路线&#xff1a;(0,0)→(1,0)→(1,1)→(10,1)→(10,0)→(11,0)(0,0)→(1,0)→(1,1)→(10,1…

【C语言】结构体详解 (二) 内存函数、结构体传参

目录 1、 结构体的内存对齐 1.1、对齐规则 1.2、练习1、练习2&#xff08;演示对齐规则1、2、3、4&#xff09; 2、为什么存在内存对齐 2.1、平台原因&#xff08;移植原因&#xff09; 2.2、性能原因 2.3、那么如何即满足对齐&#xff0c;又要节省空间呢&#xff1f; …

element-ui inputNumber 组件源码分享

今日简单分享 inputNumber 组件的实现原理&#xff0c;主要从以下四个方面来分享&#xff1a; 1、inputNumber 组件的页面结构 2、inputNumber 组件的属性 3、inputNumber 组件的事件 4、inputNumber 组件的方法 一、inputNumber 组件的页面结构。 二、inputNumber 组件的…

在计算成像中集成物理和学习模型的即插即用方法

即插即用就是把算法的近端算子换成去噪器 摘要 即插即用先验(PnP)是通过物理模型和学习模型的集成来解决计算成像问题的最广泛使用的框架之一。PnP利用高保真物理传感器模型和强大的机器学习方法对数据进行先验建模&#xff0c;以提供最先进的重建算法。PnP算法在最小化数据保…

零基础教程:R语言lavaan结构方程模型(SEM)

查看原文>>>最新基于R语言lavaan结构方程模型&#xff08;SEM&#xff09;实践技术应用 基于R语言lavaan程序包&#xff0c;通过理论讲解和实际操作相结合的方式&#xff0c;由浅入深地系统介绍结构方程模型的建立、拟合、评估、筛选和结果展示的全过程。我们筛选大量…

07-工作流设计:如何设计合理的多人开发模式?

一个企业级项目是由多人合作完成的&#xff0c;不同开发者在本地开发完代码之后&#xff0c;可能提交到同一个代码仓库&#xff0c;同一个开发者也可能同时开发几个功能特性。这种多人合作开发、多功能并行开发的特性如果处理不好&#xff0c;就会带来诸如丢失代码、合错代码、…

echarts 旭日图 层级嵌套

基础的可以直接参考官网进行配置。 Echarts旭日图的特点如下&#xff1a; 1 层次结构展示&#xff1a;旭日图适用于展示层次结构数据&#xff0c;通过不同的扇形区域来表示不同层次的数据。每个扇形区域的大小和位置表示了数据的大小和层次关系。 2 渐进式呈现&#xff1a;旭…

RelayAttention:让大型语言模型更高效地处理长提示符

一、前言 虽然大型语言模型 (LLM) 近年来取得了非常显著的进展&#xff0c;也在各种自然语言处理任务中展现出强大的能力。然而&#xff0c;LLM 的在实际的应用落地层面也面临着一些实际挑战&#xff0c;其中之一就是效率和成本问题&#xff0c;导致了在垂直行业实际落地的应用…

【spring】@Primary注解学习

Primary介绍 Primary 是 Spring 框架中的一个注解&#xff0c;用于在多个相同类型的 bean 中指定一个默认的 bean。当 Spring 容器在自动装配时遇到类型冲突&#xff0c;即存在多个相同类型的 bean 时&#xff0c;如果没有使用 Qualifier 或其他方式指定具体的 bean&#xff0…