当前位置: 首页 > 面试题库 >

Java@RequestParam与@PathVariable

楚修为
2023-03-14
问题内容

@RequestParam@PathVariable处理特殊字符之间有什么区别?

+@RequestParam空间接受。

在的情况下@PathVariable+被接受为+


问题答案:
  • @PathVariable是从URI(Spring称为URI模板)中获取一些占位符—请参见Spring参考第16.3.2.2章URI模板模式
  • @RequestParam也是要从URI中获取参数—请参见Spring Reference第16.3.3.3章,使用@RequestParam将请求参数绑定到方法参数
    如果该网址http://localhost:8080/MyApp/user/1234/invoices?date=12-05-2013在2013年12月5日获得了用户1234的发票,则控制器方法如下所示:
@RequestMapping(value="/user/{userId}/invoices", method = RequestMethod.GET)
public List<Invoice> listUsersInvoices(
            @PathVariable("userId") int user,
            @RequestParam(value = "date", required = false) Date dateOrNull) {
  ...
}

同样,请求参数可以是可选的,从Spring 4.3.3开始,路径变量也可以是可选的。但是请注意,这可能会更改URL路径层次结构并引入请求映射冲突。例如,是否/user/invoices提供nullID为“发票”的用户发票或有关用户的详细信息?



 类似资料:
  • 在处理特殊字符时,和有什么区别? 被接受为空格。 在的情况下,被接受为。

  • 问题内容: 和处理特殊字符之间有什么区别? 被空间接受。 在的情况下,被接受为。 问题答案: 是要从URI(Spring称为URI模板)中获取一些占位符 也是要从URI中获取参数—请参见Spring Reference第16.3.3.3章,使用@RequestParam将请求参数绑定到方法参数 如果该网址在2013年12月5日获得了用户1234的发票,则控制器方法如下所示: 同样,请求参数可以是可

  • 我注意到Spring在Spring 4.2中改变了RequestParam将参数封送到控制器endpoint的方式。也就是说,当我有这样的东西: 以前发送的超文本标记语言输入元素的属性为空,将作为空包含在列表中。在4.2中,它们是空字符串。' 例如: 结果为空列表。 结果是

  • 问题 为什么PayPal在返回参数之前?(问号)? 如何解决此问题,如何获取其他参数? 什么是最干净的解决方案?

  • 问题内容: 我有这个枚举: 我想用作rest请求的参数: 当我发送这些请求时,它工作正常 但是当我发送: /events?sort=somethingElse 我在控制台中收到500条响应和以下消息: 有没有一种方法可以防止spring抛出这些异常并将enum设置为null? 编辑 Strelok接受的答案有效。但是,我决定处理MethodArgumentTypeMismatchException

  • 我有一个如下的枚举 此枚举表示客户的类型。 我们有一个返回客户详细信息的API 我需要验证customerType值是否为枚举中存在的值,是否有方法通过使用getContentType方法或其他方法验证方法声明中的值,就像我在date而不是方法体中所做的那样。 请帮忙。