当前位置: 首页 > 知识库问答 >
问题:

如何为特定URL创建控制器[重复]

吕翰飞
2023-03-14

我需要从以下url开始:http://localhost:8080/home/filter?projectid=1;fileid=1

并创建此控制器:

@GetMapping("/home/filter/{projectId}/{fileId}")
public String filter(@PathVariable("projectId") int projectId, @PathVariable("fileId") int fileId) {

    System.out.println("Project Id " + projectId);

    System.out.println("File Id " + fileId);

    return "redirect:/home";
}
 This application has no explicit mapping for /error, so you are seeing this as a fallback.
 Wed Apr 04 17:24:51 EEST 2018
 There was an unexpected error (type=Not Found, status=404).
 /home/filter

我不知道该怎么办..

共有1个答案

齐驰
2023-03-14

您需要理解URL中查询参数和路径参数之间的区别。

  • 查询参数是之后的参数,其格式为name=value(如果有多个参数,则由&分隔),
    类似于http://localhost:8080/home/filter?projectid=1&fileid=1
  • 路径参数由/分隔(如果有分隔),
    类似于http://localhost:8080/home/filter/1/1

对于查询参数,您可以在控制器中使用@requestparam批注。
示例:对于http://localhost:8080/home/filter?projectid=1&fileid=1这样的URL,您的控制器可以如下所示:

@GetMapping("/home/filter")
public String filter(@RequestParam("projectId") int projectId,  
                     @RequestParam("fileId") int fileId) {
    ...
}

对于路径参数,可以在控制器中使用@pathvariable批注。
示例:对于http://localhost:8080/home/filter/1/1这样的URL,控制器可以如下所示:

@GetMapping("/home/filter/{projectId}/{fileId}")
public String filter(@PathVariable("projectId") int projectId,  
                     @PathVariable("fileId") int fileId) {
    ...
}
 类似资料:
  • 我正在构建一个URL缩短器,并正在研究“跟随方法”(follow method)——例如short。李/?存根=dishpods应重定向到https://www.amazon.com/gp/product/B07CTQ8THP/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8 如何在我的控制器中设置这个自动重定向?我能想到的最好的办法是打印到控制台,但我希望它能

  • 连接:Keep-Alive 主机:webhook.site 内容类型:application/x-www-form-urlencoded

  • 我明白,对于处理器,我只需在文件夹下的中编写代码,然后从中创建一个nar文件。但是在控制器服务的情况下,我有4个文件夹生成。我可以看到两个java文件。 > 显示在文件夹下 显示在文件夹下 现在,为什么在自定义控制器服务的情况下生成两个java文件,而在自定义处理器的情况下只生成一个java文件。另外,由于我试图模仿服务,其中的java文件中有两个我应该复制服务的原始源代码。 请从头开始指导我创建

  • 控制器文件位置 /_ 分组目录(如 /app) |_ controllers |_ 在此文件夹内创建控制器 控制器文件命名 [ 只支持字母 + 数字 ] 控制器名称.php 控制器代码编写规范 自定义控制器必须继承 grace 基础控制器! <?php class 控制器名称Controller extends grace{ //方法定义 publ

  • 我使用的是spring boot V1.3.2 我尝试创建自定义注释,它通过添加RequestMapping来扩展RestController。这里有一个例子,但它不起作用。

  • 我们的GKE集群共享给公司的多个团队。每个团队可以有不同的公共域(因此希望有不同的CA证书设置和不同的入口网关控制器)。在Istio怎么做?Istio网站上的所有教程/介绍文章都使用了共享入口网关。请参见ISTIO-1.0.0安装的共享入口网关示例:https://istio.io/docs/tasks/traffic-management/secure-ingress/