已有域名如何在花生壳网站做二级域名托管,wordpress模板怎么修改字体,卫生院网站建设,做网站的前途怎么样Spring MVC框架是在Java世界中开发Web应用程序最流行的框架之一#xff0c;它还提供了一些有用的注释#xff0c;可以从传入的请求中提取数据并将请求映射到控制器#xff0c;例如 RequestMapping#xff0c; RequestParam和PathVariable。 即使将RequestParam和ParthVari… Spring MVC框架是在Java世界中开发Web应用程序最流行的框架之一它还提供了一些有用的注释可以从传入的请求中提取数据并将请求映射到控制器例如 RequestMapping RequestParam和PathVariable。 即使将RequestParam和ParthVariable都用于从HTTP请求中提取值它们之间也存在细微的差异这使得它们从访谈和Spring认证的角度来看都是一个有用的问题。 我们将研究之间的细微差别 本文中的RequestParam和PathVaraible。 顾名思义 RequestParam用于从URL获取请求参数也称为查询参数而PathVariable则从URI提取值。 例如如果传入的检索主题为“ Java”的书的HTTP请求是http// localhost8080 / shop / order / 1001 / receiptsdate 12-05-2017则可以使用RequestParam批注检索查询参数日期您可以使用PathVariable提取orderId即“ 1001”如下所示 RequestMapping(value/order/{orderId}/receipts, method RequestMethod.GET)public List listUsersInvoices(
PathVariable(orderId) int order,RequestParam(value date, required false) Date dateOrNull) {...} required false表示查询参数可以是可选的但URL必须具有相同的URI。 如何使用RequestParam在Spring MVC中提取查询参数 Spring MVC是一个丰富的框架可以用Java开发Web应用程序和RESTful Web服务 。 它提供了几种从传入的HTTP请求中检索数据的方法例如 请求参数 路径变量 表格输入 既然您知道了Spring MVC中RequestParam和PathVariable之间的区别让我们看看如何编写可以处理请求参数和路径变量的Spring控制器。 使用RequestParam获取查询参数 在Spring MVC应用程序中可以使用RequestParam批注在Controller的处理程序方法中接受查询参数。 例如假设您有一个Web应用程序该应用程序返回订单和交易的详细信息并且具有以下URL http://localhost:8080/eportal/orders?id1001 要接受上述URL中的查询参数可以在Spring MVC控制器中使用以下代码 RequestMapping(/orders)public String showOrderDetails(RequestParam(id) String orderId, Model model){model.addAttribute(orderId, orderId);return orderDetails;} 如果查询参数的名称与处理程序的RequestParam注释参数中的变量名称相同则可以直接使用RequestParam而不指定查询参数的名称Spring会自动派生该值请参见 Spring MVC简介 。 另外这是证明这一点的代码 URL:http://localhost:8080/eportal/trades?tradeId2001RequestMapping(/trades)public String showTradeDetails(RequestParam String tradeId,Model model){model.addAttribute(tradeId, tradeId);return tradeDetails;} 可以看到我们刚刚使用RequestParam注释了方法参数tradeId而未指定查询参数的名称因为请求参数的名称和参数名称都相同即“ tradeId”。 如果您有兴趣了解有关RequestParam的更多信息建议您查看Bryan Hassen的Spring MVC 4简介以了解有关RequestParam批注的更多信息。 使用PathVariable批注从URI中提取值 您可以使用Spring MVC的Path Varaible注释来提取嵌入在URL本身中的任何值。 Spring将其称为URI模板其中PathVariable用于从URI本身获取一些占位符。 如果您使用过RESTful Web服务则可能会知道REST URI包含值例如使用ISBN号检索书籍的REST API如下所示 URL:http://localhost:8080/book/9783827319333 现在要从Spring MVC Controller的处理程序方法中的URI中提取ISBN号的值可以使用PathVariable注释如以下代码所示 RequestMapping(value/book/{ISBN}, method RequestMethod.GET)public String showBookDetails(PathVariable(ISBN) String id,Model model){model.addAttribute(ISBN, id);return bookDetails;} 与RequestParameter批注类似如果RequestMapping批注中路径变量占位符的名称与处理程序方法的PathVariable批注参数中的变量名相同则也可以省略PathVariable批注中的value属性。请参阅REST with Spring 。 例如您可以重写以上代码如下所示 RequestMapping(value/book/{ISBN}, method RequestMethod.GET)public String showBookDetails(PathVariable String ISBN,Model model){model.addAttribute(ISBN, ISBN);return bookDetails;} Spring MVC提供了一些有用的注释来映射和提取HTTP请求中的数据作为Spring开发人员您应该了解这些注释例如 RequestMapping RequestParam和PathVariable。 这些概念和注释对于Spring MVC的访问前景以及Spring认证都是非常重要的。 基于这些概念您总是会发现几个问题。 顺便说一句如果您正在准备Spring Web认证还可以查看David Mayer的免费Spring Mock Questions 以了解有关实际Spring Web Certification的问题级别和问题格式的信息。 Spring中PathVariable和RequestParam之间的区别 现在我们了解了两者的区别以及如何使用两者 RequestParam和 Spring MVC应用程序中的PathVariable让我们从访谈的角度修改它们之间的主要区别。 1RequestParam用于提取查询参数而PathVariable用于直接从URI提取数据。 2RequestParam在传统的Web应用程序上更有用在传统的Web应用程序中数据主要在查询消除中传递而PathVariable更适合RESTful Web服务其中URL包含值例如http// localhost8080 / book / 9783827319333此处为data ISBN号是URI的一部分。 如果您想了解更多有关如何使用Spring有效开发REST应用程序的信息建议您加入Eugen Paraschiv的 REST with Spring课程。 这是一门在线课程它将教您为现实场景开发REST API和服务的精妙方法。 Eugen在使用Spring开发RESTful Web服务方面拥有丰富的经验本课程是利用他的知识的绝佳方法。 3如果查询参数不存在或为空则DefaultParam批注可以使用defaultValue属性指定默认值前提是必填属性为false。 4Spring MVC允许您在同一方法中使用多个PathVariable批注前提是不超过一个参数具有相同的模式。 这就是Spring MVC中PathVariable和RequestParam之间的区别 。 即使两者都用于从URL提取数据 RequestParam仍用于检索查询参数在之后是什么 在URL中而PathVariable用于从URI本身检索值。 这个概念对于传统的Web应用程序开发以及使用Spring开发RESTful Web Services都是非常重要的因此您必须花一些时间来更好地理解它。 您可能想探索的其他Spring MVC文章 Bryan Hassen的Spring MVC 4简介 Spring MVC中RestController和Controller之间的区别 Spring MVC在内部如何工作 Spring MVC中DispatcherServlet的用途是什么 如何在Java Web应用程序中启用Spring安全性 Craig Walls的《春天在行动》 感谢您到目前为止阅读本文。 如果您喜欢这篇文章请与您的朋友和同事分享。 如有任何疑问请给我留言。 翻译自: https://www.javacodegeeks.com/2017/10/differences-requestparam-pathvariable-annotations-spring-mvc.html