我尝试用Spring Boot创建一个API。Spring Boot的版本如下
spring-boot 1.5.13.RELEASE
spring-core 4.3.17.RELEASE
上下文根被设置为"/hoge "和" www.example.com ",application.properties",
server.context-path=/hoge
和控制器方法如下
@RequestMapping(value = "/")
public String default(
HttpServletRequest request,
HttpServletResponse response,
SessionStatus sStatus,
Model model, Locale locale) throws IOException, Exception {
return login(request, response, sStatus, model, locale);
}
下面的代码是在curl中执行的,并且执行了方法。
curl http://localhost:8080/hoge/
但是,如果下面没有尾随斜杠,则该方法不会执行。
curl http://localhost:8080/hoge
当方法的RequestMapping注解中的值为
@RequestMapping(value = {"","/"})
我想知道如何执行一个方法的请求没有尾随斜线。
先谢谢你。
附录
ex1(无法执行。)
@Controller
@RequestMapping(value = "")
public class TestAction {
public String default(
HttpServletRequest request,
HttpServletResponse response,
SessionStatus sStatus,
Model model, Locale locale) throws IOException, Exception {
return login(request, resonse, sStatus, model, locale);
}
}
ex2(无法执行。)
@Controller
@RequestMapping(value = "*")
public class TestAction {
public String default(
HttpServletRequest request,
HttpServletResponse response,
SessionStatus sStatus,
Model model, Locale locale) throws IOException, Exception {
return login(request, resonse, sStatus, model, locale);
}
}
ex3(无法执行。)
@Controller
public class TestAction {
@RequestMapping(value = "")
public String default(
HttpServletRequest request,
HttpServletResponse response,
SessionStatus sStatus,
Model model, Locale locale) throws IOException, Exception {
return login(request, resonse, sStatus, model, locale);
}
}
ex4(无法执行。)
@Controller
public class TestAction {
@RequestMapping(value = "*")
public String default(
HttpServletRequest request,
HttpServletResponse response,
SessionStatus sStatus,
Model model, Locale locale) throws IOException, Exception {
return login(request, resonse, sStatus, model, locale);
}
}
1条答案
按热度按时间xzv2uavs1#
server.context-path=/hoge
只是上下文路径。那不是资源。你的资源现在被设置为“/
“(检查请求Map)。你还没有为你的资源设置一个正确的名称。要解决这个问题,您必须使用类似下面的名称来命名您的请求Map。
我在这里选择了“默认值”作为名称。您可以随意命名,只要符合标准即可。
这就是请求的样子。
如果你不希望上下文为
hoge
,那么删除server.context-path
属性,你的请求将如下所示。如果您创建了另一个资源,您可以将其请求Map设置为类似于下面的内容,并使用不同的名称。
会导致这样的请求。