场景:
controller为
@Controller
public class EncodingController {
@PostMapping("/e/t1")
public String test1(String name, Model model){
model.addAttribute("msg",name);
return "test";
}
}
前端form表单为
<form action="/e/t1" method="post">
<input type="text" name="name">
<input type="submit">
</form>
运行起来后

随便输入一个数
点击提交后

注意看它的URL地址,本来我们想着的URL应该变为
http://localhost:8080/springmvc_05_controller_war_exploded/e/t1
但是它自动把8080后面的一段给删掉了,这样自然是找不到的。
解决办法
方法1修改Application context

将Application context的直接改为/,这样我们访问的时候8080后面也不带任何东西。
方法2:修改action
它不是会自动删除8080后的那一段东西嘛,我们再重新给它加上就行了不是嘛
<form action="${pageContext.request.contextPath}/e/t1" method="post">
<input type="text" name="name">
<input type="submit">
</form>
本文讨论了在使用Spring MVC时遇到的一个问题,即表单提交后URL丢失部分路径,导致请求失败。解决方案包括修改ApplicationContext配置,将上下文路径设置为'/',或者在前端form标签中使用`${pageContext.request.contextPath}
377

被折叠的 条评论
为什么被折叠?



