thymeleaf页面URL路径的相关写法
1、首先是绝对路径。很好理解,也很好写,直接写到对应的标签里就好,如下图,上面一行是thymeleaf写法,下面是在页面的实际效果。
2、接下来,是相对于项目上下文(Context,亦即项目部署时的路径名)的相对路径,例如,假设部署的项目Context为 app ,则thymeleaf的写法和实际效果如下图。点击该链接时,访问的地址是http://{serverName}:{port}/app/test/index。
3、然后,是相对于服务器根路径的相对路径,例如,假设当前项目部署的Context为app,但是在当前服务器下还有另外一个项目,我们可以选择使用相对服务根路径的相对路径写法,如下图。点击后访问的地址是http://{serverName}:{port}/anthorapp/index.html
4、再然后,还有相对于协议的相对路径写法!是的,是指相对于http或https的相对路径,效果如下图。该写法一般应用于样式文件或者是js文件。
5、基本路径的写法完成了,那么,如果想在路径中加入参数呢?在thymeleaf中,使用()来实现这一功能,如下图,在路径的最后加入(id=xxx),thymeleaf会在前端渲染成?id=xxx。当多个参数时,以逗号分隔,写成(id=xxx,name=xxx)之类的形式即可。
6、如果参数不仅仅是写在最后方,想写在路径中间,实现类似restful风格的效果,则可以如下图所示。
7、以上是thymeleaf中URL拼接的一些基本写法,更加复杂和高级的写法大家可以直接去thymeleaf官网阅读相关文档。最后,在一些极其特殊的情况下, 例如像懈吡赜痖变更协议,http变为https。或者是像htm5,提供了base标签,写jsp习惯了的程序员往往会自定义一个baserurl来拼接绝对路径避免路径问题,那么,别忘了thymeleaf还提供了一些预定义的变量!比如#httpServletRequest。
8、注意,使用预定义变量时,${}前后是双下划线__,不是单下划线。预定义变量中的属性请参考thymeleaf的文档,写一个不存在的属性thymeleaf会报错。