【问题标题】:Spring Same URL Different Request ParameterSpring相同的URL不同的请求参数
【发布时间】:2015-09-15 05:32:59
【问题描述】:
public String searchUserById(@RequestParam(value = "fileType", required = true) String fileType) {
    System.out.println(fileType);
    return "downloadexcel";
}

public String searchUserByName(@RequestParam(value = "fileType", required = true) String fileType, @RequestParam(value = "batchNo", required = true) String batchNo) {
    System.out.println(fileType + " ----------- " + batchNo);
    return "downloadexcel";
}

我需要的这种 URL 模式我发现了一些相关的问题,但是在点击 url 时我收到了 400 个错误的请求

1.http://localhost:8080/apna-shopee/download.htm?fileType=mani 2.http://localhost:8080/apna-shopee/download.htm?fileType=mani&batchNo=1001

没有找到正确的解决方案。

【问题讨论】:

  • 嗨,如果您为 batchNo 参数设置 required = false ,我认为您可以在控制器中以相同的方法管理这两个请求。在这种情况下,您应该检查控制器中 batchNo 的值(如果它为 null,则它不在 URL 中)
  • 这就是我现在正在做的事情。请参阅下面的问题评论。但是我正在用这个应用程序学习spring,所以请帮助我。如果你知道参数传递。谢谢
  • 您想使用哪种解决方案?一种可以处理这两种情况的方法,还是两种不同的方法?另一个问题:您是否在方法中添加了@RequestMapping 注解?
  • 在课堂级别我添加了@RequestMapping

标签: spring http-request-parameters


【解决方案1】:

访问以下链接,这可能会帮助您解决问题 create two method for same url pattern with different arguments

您也可以根据情况执行此操作。只需使用两个参数制作简单的方法,并根据第二个参数值执行适当的操作。即,如果第二个参数值为 null,则表示请求仅使用单个参数完成

【讨论】:

  • 但在我的情况下,我将在第一种情况下获得 1 个参数,在第二种情况下获得两个参数在这两种情况下,我都有一个共同参数
  • 确实我不知道如果请求中有公共参数如何管理。我会尽快更新它
  • 好的。感谢您的回复@Krupesk Kotecha
  • 但我必须在这两种情况下更改整个逻辑,这两种情况有很多不同
  • 你这可能会发生。如果我找到任何其他解决方案,会通知您
猜你喜欢
  • 2019-05-06
  • 2016-07-30
  • 1970-01-01
  • 2020-07-31
  • 1970-01-01
  • 1970-01-01
  • 2019-01-20
  • 1970-01-01
  • 2011-02-14
相关资源
最近更新 更多