java - 如何动态指定Spring Restful WebService URL?

标签 java spring web-services rest spring-mvc

我想动态输入我的 Spring Restful url,该怎么做? 首先,在尝试创建动态网址之前,我先创建静态网址。这就是我所做的:

@RequestMapping(value = "/insert/{id}/{name}/{address}", method = RequestMethod.GET,headers="Accept=application/json")
public void insertsoheaderdinamis(@PathVariable String id, @PathVariable String name, @PathVariable String address) throws ParseException {


}

上面是我的静态网址代码。将来,我需要的是,我需要一个像这样的新路径变量localhost:8080/SpringServiceJsonSample/service/updatepool/insert/{这里是id}/{这里是名称}/{这里是地址}/{新变量为电话号码}/{此处为年龄}

我不想更改我的代码,所以我决定创建一个动态网址。当我在互联网上阅读时。

我正在尝试这样做:

@RequestMapping(value = "/insert/{path}/**", method = RequestMethod.GET,headers="Accept=application/json")
public void insertdynamicurl(@PathVariable("path") String path, HttpServletRequest request) throws ParseException {

}

但这不行,即使我在调试时也无法进入我的函数。它总是在我的控制台日志中给出“noHandlerFound”。如何正确执行 springrestful 服务的动态 url?

最佳答案

您可以查看URI Template Patterns with Regular Expressions建议在 @RequestMapping 注释中使用正则表达式。

@RequestMapping 注释支持在 URI 模板变量中使用正则表达式。语法为 {varName:regex},其中第一部分定义变量名称,第二部分定义正则表达式。例如:

@RequestMapping("/spring-web/{symbolicName:[a-z-]+}-{version:\d\.\d\.\d}.{extension:\.[a-z]}")
  public void handle(@PathVariable String version, @PathVariable String extension) {    
    // ...
  }
}

除此之外,您还可以使用请求属性名称 HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE 来匹配 URL 字符串的其余部分,如下所示。

@RequestMapping("/{id}/**")
public void foo(@PathVariable("id") int id, HttpServletRequest request) {
    String restOfTheUrl = (String) request.getAttribute(
        HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
    ...
}

关于java - 如何动态指定Spring Restful WebService URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31715474/

相关文章:

java - Hibernate JTable 同步

java - 计算非重复整数

java - 避免集群环境中 Spring Batch 作业的并发

web-services - Apache Camel 聚合多个REST服务响应

java - spring:即时添加 xml 上下文?

java - 空指针访问警告

java - Spring - 注入(inject) vavr 集合

java - 在 Spring 3.0 中使一个 spring bean 动态引用两个基于系统属性的类

ios - 从 iOS 和 JSON 解析调用 ASP.NET webmethod

iphone - 如何减小 objective-c 中图像的大小