java - Spring MVC RequestMapping 需要尾部斜杠

标签 java spring spring-boot spring-mvc

似乎有一些奇怪的行为,我似乎无法查明其原因。当我访问特定的 url 时,我会收到 404 响应,而同一 Controller 类处理的其他 url 可以正常工作。我必须在 url 末尾添加一个尾随/才能调用该方法。

访问 localhost:8080/newprofile 时不会调用此方法

 @RequestMapping(value="/newprofile", method=RequestMethod.GET)
    public String newProfile(Model model, Principal principal) {
        return "newprofile";
    }

但是,访问 localhost:8080/login 时会调用此函数

@GetMapping("/login")
public String login() {
    return "login";
}

我尝试了 GetMapping 和 RequestMapping,但这些方法从未被调用。

这两种方法都包含在我的 Controller 类中

    @Controller
    public class HomeResources {
    //login
    //new profile
        }

最佳答案

有一个设置负责此类行为:

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerMapping.html#setUseTrailingSlashMatch-boolean-

只需将其关闭即可:

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {

  @Override
  public void configurePathMatch(PathMatchConfigurer configurer) {
      configurer.setUseTrailingSlashMatch(false);
  }
}

关于java - Spring MVC RequestMapping 需要尾部斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59914965/

相关文章:

java - Eclipse 在调试时显示 Java 字节数组的红色值

java - 如何使用 Spring Security 4.0.1.RELEASE 使用 Auth Token 实现 Rest Full Web 服务

java - spring 应用程序中的空存储库,即使所有对象都被 Autowiring 并且从未手动实例化

java - 为过期和锁定的用户创建自定义消息

java - 如何让 xmemcached 更快

java - 有什么方法可以在不复制 javascript 标签的情况下将 ajax 与 jSTL 自定义标签一起使用?

java - 将 CSS 文件包含到 JSP 中

java - Spring 4.0 : Resolve Type of GenericDao

java - 如何将 JPA 默认抓取更改为 LAZY

java - 使用 SSL 加密和 NTLM 身份验证的 HttpClient 失败