gpt4 book ai didi

java - 如何将 Spring MVC Controller 映射到带和不带尾部斜杠的 uri?

转载 作者:太空狗 更新时间:2023-10-29 22:32:33 27 4
gpt4 key购买 nike

我有一个 Spring Controller,它带有多个用于不同 URI 的 RequestMappings。我的 servlet 是“ui”。 servlet 的基本 URI 仅适用于尾部斜杠。我希望我的用户不必输入结尾的斜杠。

这个 URI 有效:

http://localhost/myapp/ui/

这个没有:

http://localhost/myapp/ui

它给了我一条 HTTP 状态 404 消息。

我的 web.xml 中的 servlet 和映射是:

<servlet>
<servlet-name>ui</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>ui</servlet-name>
<url-pattern>/ui/*</url-pattern>
</servlet-mapping>

我的 Controller :

@Controller
public class UiRootController {

@RequestMapping(value={"","/"})
public ModelAndView mainPage() {
DataModel model = initModel();
model.setView("intro");
return new ModelAndView("main", "model", model);
}

@RequestMapping(value={"/other"})
public ModelAndView otherPage() {
DataModel model = initModel();
model.setView("otherPage");
return new ModelAndView("other", "model", model);
}

}

最佳答案

使用 Springboot,我的应用程序可以通过将 @RequestMapping 的“值”选项设置为空字符串来回复带或不带尾部斜线:

@RestController
@RequestMapping("/some")
public class SomeController {
// value = "/" (default) ,
// would limit valid url to that with trailing slash.
@RequestMapping(value = "", method = RequestMethod.GET)
public Collection<Student> getAllStudents() {
String msg = "getting all Students";
out.println(msg);
return StudentService.getAllStudents();
}
}

关于java - 如何将 Spring MVC Controller 映射到带和不带尾部斜杠的 uri?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12043618/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com