tec*_*noJ 2 rest spring-mvc java-8 spring-restcontroller
我正在编写一个Rest服务(HTTP Get端点),在下面的uri中执行以下操作
http://localhost:8080/customers/{customer_id}
Run Code Online (Sandbox Code Playgroud)
码:
@RequestMapping(method = RequestMethod.GET, value = "customers/{customer_id}")
public List<Customer> getCustomers(
@PathVariable(name = "customer_id", required = false) final String customerId) {
LOGGER.debug("customer_id {} received for getCustomers request", customerId);
}
Run Code Online (Sandbox Code Playgroud)
但是,使用上面的代码,第二种情况下,控件流向getCustomers()。
注意:我使用的是Java8和spring-web 4.3.10版本
非常感谢对此的任何帮助。
@PathVariable仅当您要同时映射GET /customers/{customer_id}和映射GET customers到单个java方法时才使用Optional 。
您不能发送的请求将被发送到GET /customers/{customer_id}如果不发送customer_id。
因此,在您的情况下,它将是:
@RequestMapping(method = RequestMethod.GET, value = {"/customers", "customers/{customer_id}"})
public List<Customer> getCustomers(@PathVariable(name = "customer_id", required = false) final String customerId) {
LOGGER.debug("customer_id {} received for getCustomers request", customerId);
}
Run Code Online (Sandbox Code Playgroud)
需要公共抽象布尔值
是否需要path变量。
默认为true,如果传入请求中缺少path变量,则会引发异常。如果您希望使用null或Java 8 java.util,请将其切换为false。例如在用于不同请求的ModelAttribute方法上。
您可以使用java8 null或Optional从java8
| 归档时间: |
|
| 查看次数: |
5909 次 |
| 最近记录: |