最近在使用thymeleaf时,遇到一个问题,比如要跳转的地址是localhost:8080/pro/a/b,跳转后发现变成了
localhost:8080/pro/path/a/b,这样地址中多了个path,显然是错误的。其实在跳转地址前加 / 和不加 / 是不一样的。
页面跳转地址前加 /,意味着跳转到项目的根目录,不加 / ,意味着从当前页地址跳转。
解决的办法也很简单,只要获取上下文路径就可以了。由于使用的thymeleaf下面jsp一笔带过。
下面是各种跳转的方式。
1.jsp
jsp获取上下文路径:下面只是jsp获取上下文路径的一种方式
value="${pageContext.request.scheme}://${pageContext.request.serverName}: ${pageContext.request.serverPort}${pageContext.request.contextPath}" />
2.thymeleaf
2.1.ajax
在thymeleaf中使用ajax提交,url:[[@{/index/ajaxtest}]]这样就可以。
$.ajax({
async:true,
url:"[[@{/findById/}]]"+id,
type:"POST",
success:function(data){
alert("操作成功!");
}
})
2.2.form表单提交
用户名