gpt4 book ai didi

java - 在 URL 中带有时间戳的 Spring RequestMapping

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:12:21 24 4
gpt4 key购买 nike

我想在 Spring 中有一个用于下载 CSV 的动态 URL,例如Bernhard_content_24Feb2017.csv。更正式地说,这将是

{id}_content_{timestamp}.csv

Me_content_1Jan2017.csvYou_content_31Dec2017.csv 等每个请求都应转到下面代码中的方法 (getCsv(...))。请注意,我想保留后缀 .csv 。用户应下载名称类似于 Me_content_1Jan2017.csv 的文件。

所以我在 Spring 中尝试了这个:

@RequestMapping("{id}_content_{timestamp}.csv")
public void getCsv(@PathVariable String id, @PathVariable String timestamp, HttpServletResponse response) {
response.getWriter().print(createCsv(id));
}

不幸的是,这不起作用。

正确的语法是什么?假设这是可能的。

谢谢,

伯恩哈德

更新:

我选择了这个解决方案(稍微重命名了 URL,现在像 Me_1Jan2017_content.csv):

@RequestMapping("{idAndTimestamp}_content.csv")
public void getCsv(@PathVariable String idAndTimestamp, HttpServletResponse response) {
String id = idAndTimestamp.split("_")[0];
response.getWriter().print(createCsv(id));
}

最佳答案

我找不到为@PathVariable 使用复杂定义的方法。尝试在一个变量中获取完整的文件名,然后在您的方法中拆分各个部分。像这样。

@RequestMapping("{fileName}")
public void getCsv(HttpServletResponse response, @PathVariable String fileName) {
String[] parts = fileName.split(".")[0].split("_");
String id = parts[0];
String timestamp = parts[2];
}

关于java - 在 URL 中带有时间戳的 Spring RequestMapping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42439319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com