- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有以下映射:
@RequestMapping(value = "/{first}/**/{last}", method = RequestMethod.GET)
public String test(@PathVariable("first") String first, @PathVariable("last")
String last) {}
对于以下 URI:
foo/a/b/c/d/e/f/g/h/bar
foo/a/bar
foo/bar
将 foo 映射到 first 并将 bar 映射到 last 并且工作正常。
我想要的是将 foo 和 bar 之间的所有内容映射到单个路径参数,如果没有中间部分则为 null(如上一个 URI 示例):
@RequestMapping(value = "/{first}/{middle:[some regex here?]}/{last}",
method = RequestMethod.GET)
public String test(@PathVariable("first") String first, @PathVariable("middle")
String middle, @PathVariable("last") String last) {}
非常坚持正则表达式,因为我希望像 {middle:.*} 这样简单的东西,仅 映射到/foo/a/bar,或 {middle:(.*/) *},这似乎什么也映射不到。
AntPathStringMatcher 是否在应用正则表达式模式之前对“/”进行标记? (使跨越/不可能的模式)或者有解决方案吗?
仅供引用,这是在 Spring 3.1M2
这看起来类似于 @RequestMapping controllers and dynamic URLs但我在那里没有看到解决方案。
最佳答案
在我的项目中,我在springframework中使用内部变量:
@RequestMapping(value = { "/trip/", // /trip/
"/trip/{tab:doa|poa}/",// /trip/doa/,/trip/poa/
"/trip/page{page:\\d+}/",// /trip/page1/
"/trip/{tab:doa|poa}/page{page:\\d+}/",// /trip/doa/page1/,/trip/poa/page1/
"/trip/{tab:trip|doa|poa}-place-{location}/",// /trip/trip-place-beijing/,/trip/doa-place-shanghai/,/trip/poa-place-newyork/,
"/trip/{tab:trip|doa|poa}-place-{location}/page{page:\\d+}/"// /trip/trip-place-beijing/page1/
}, method = RequestMethod.GET)
public String tripPark(Model model, HttpServletRequest request) throws Exception {
int page = 1;
String location = "";
String tab = "trip";
//
Map pathVariables = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
if (pathVariables != null) {
if (pathVariables.containsKey("page")) {
page = NumberUtils.toInt("" + pathVariables.get("page"), page);
}
if (pathVariables.containsKey("tab")) {
tab = "" + pathVariables.get("tab");
}
if (pathVariables.containsKey("location")) {
location = "" + pathVariables.get("location");
}
}
page = Math.max(1, Math.min(50, page));
final int pagesize = "poa".equals(tab) ? 40 : 30;
return _processTripPark(location, tab, pagesize, page, model, request);
}
关于java - Spring-MVC RequestMapping URITemplate 中的可选路径变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7841770/
[OperationContract] [WebGet(UriTemplate = "/searchresults/{searchTerm}/{searchType}", ResponseFo
当我使用带有 WebGet 属性的参数注释方法但不提供 UriTemplate 时,WCF Rest 的默认行为是什么?是否存在默认行为或 WCF 根本不响应 GET 请求(这对我来说似乎正在发生)。
WCF 将匹配: http://localhost:8888/test/blahFirst/blahSecond/sdfsdf,wwewe 对此: [OperationContract] [WebGe
我尝试重用相同的 UriTemplate 实例,而不是每次都创建它。但不知道是否线程安全。 最佳答案 UriTemplate 接受 URI 字符串,并将其分解为: private final Stri
我尝试了以下代码: [OperationContract] [WebInvoke(UriTemplate="/Users/Register/{user}")] void Register(Use
我正在使用 WCF 4.0 创建 REST-ful Web 服务。我想要做的是根据 UriTemplate 中的查询字符串参数调用不同的服务方法。 例如,我有一个 API,允许用户使用驾驶执照或社会安
我已经使用了 this thread 中的提示并提供了一个默认值,以便当用户没有指定虚拟子目录时,我假设他的意思是要列出所有内容。它有效。 [OperationContract] [WebInvoke
我正在 WCF 4.0 中开发一些 RESTful 服务。我有一个方法如下: [OperationContract] [WebGet(UriTemplate = "Test?format=XM
这是一种场景,我有一个 WCF 服务调用,它采用一个字符串参数,并且该字符串中包含斜杠(例如“123/456.xml”)。我想设置一个像“/{file}”这样的 UriTemplate,以便我可以访问
我正在使用 .Net Standart for Azure Function,它使用服务总线处理消息。一旦我的函数运行,我遇到了以下异常: Microsoft.ServiceBus: The type
如何编写单元测试来测试我的 WCF 服务中的 UriTemplates(例如 [WebGet(Uritemlpate="{clientId}/returns")]? 例如,在 Global.asax
假设我正在使用新的 WCF Web API 来构建 RESTful 服务,并且在我的服务中,我有一部分 URI 将描述目标资源,但用于(几乎)契约(Contract)的所有方法。例如,如果我有一个处理
我创建了以下 RESTful WCF 服务,它在 VS 中运行时运行良好。 [OperationContract] [WebGet(ResponseFormat = WebMessageFormat.
我有许多 Azure 功能,现在我想将 Azure API 管理放在前面。 我已从帐户中的 2 个或 3 个其他函数应用导入所有函数,没有出现任何问题,但其中一个函数应用出现问题。这个功能应用程序有
如果我可以访问 Uri 和它所基于的 UriTemplate,发现替换模板中参数的值的最巧妙方法是什么? 例如,如果我知道: var uriTemplate = new UriTemp
我有以下映射: @RequestMapping(value = "/{first}/**/{last}", method = RequestMethod.GET) public String test
我有一个带有以下 API 的 RESTful WCF 网络服务: [WebGet(ResponseFormat = WebMessageFormat.Json)] MyResponseContract
这些我都试过了 Optional Parameters in WCF Service URI Template?Posted by Kamal Rawat in Blogs | .NET 4.5 on
我可以执行以下操作吗? [OperationContract] [WebGet(UriTemplate = "/foo/{id}")] string GetFoo(int id); 我希望我的服务既可
您好,我有一个简单的 WCF REST 服务,我需要通过如下所示的查询字符串获取一些参数。 page=1&rp=10&sortname=id&sortorder=asc&query=&qtype=Ap
我是一名优秀的程序员,十分优秀!