【发布时间】:2018-07-03 01:46:53
【问题描述】:
当我的控制器中的 RequestMapping 时,我能够将一个 html 文件映射到“/”,另一个映射到“/users”。但是,尝试映射到“/users/”或“/users/test”是行不通的。在控制台中,它会说端点已映射,但在尝试访问它时,我会得到 404 错误页面。
package com.bridge.Bitter.controllers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class BitterController {
//works
@RequestMapping(value="/")
public String getMainPage(){
return "main.html";
}
//works
@RequestMapping(value="/users")
public String getUsersPage(){
return "users.html";
}
//doesn't work, Whitelabel error page
@RequestMapping(value="/users/")
public String getUsersSlashPage(){
return "users.html";
}
//doesn't work, Whitelabel error page
@RequestMapping(value="/users/test")
public String getUsersTestPage(){
return "users.html";
}
}
我的 application.properties 只包含“spring.data.rest.basePath=/api”。
如果我从@Controller 更改为@Rest Controller,会发生以下情况:
package com.bridge.Bitter.controllers;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
@RestController
public class BitterController {
//works
@RequestMapping(value="/")
public String getMainPage(){
return "main.html";
}
//returns a webpage with the text "users.html" on it instead of serving the html
@RequestMapping(value="/users")
public String getUsersPage(){
return "users.html";
}
//returns a webpage with the text "users.html" on it instead of serving the html
@RequestMapping(value="/users/")
public String getUsersSlashPage(){
return "users.html";
}
//returns a webpage with the text "users.html" on it instead of serving the html
@RequestMapping(value="/users/test")
public String getUsersTestPage(){
return "users.html";
}
}
将函数从返回字符串更改为返回
new ModelAndView("user.html")
适用于 /users,但随后会出现 /users/ 和 /users/test 的 404 错误。
【问题讨论】:
标签: java spring spring-mvc spring-boot request-mapping