项目中使用thymeleaf前后台一起开发注意事项
1.因为thymeleaf标签有th:
前缀,在编辑器报错说是不是认识th:*之类的属性,当页面解析的时候并不会出现任何问题,如果你觉得这个错心烦,请在文档开头html处加入如下:
<html xmlns:th="http://www.thymeleaf.org"></html>
2.前端人员开发的过程中,引用的资源都为静态的资源,显然是不符合动态页面的需求的。怎么办呢?
当我我们要引入某个CSS的时候静态引入是这个样子
<link rel="stylesheet" type="text/css" href="../../../static/css/public.css"/>
动态引入是这个样子
<link rel="stylesheet" type="text/css" th:href="@{/static/css/public.css}"/>
为了在本地能正常引用到样式,需要把它俩写到一起:
<link rel="stylesheet" type="text/css" href="../../../static/css/public.css" th:href="@{/static/css/public.css}"/>
不用担心会多出个属性,thymeleaf会自动处理。
3.很多时候我们需要在前端的js中获取后端的变量。在获取变量之前我们最好设置
<script type="text/javascript" th:inline="javascript">
/*<![CDATA[*/
/*]]>*/
</script>
获取值:
<script type="text/javascript" th:inline="javascript">
/*<![CDATA[*/
var username = /*[[${sesion.user.name}]]*/ 'zhangsan';
/*]]>*/
</script>
在静态页面它的解析结果是:
<script type="text/javascript">
var username = 'zhangsan';
</script>
在动态页面它的解析结果是:
<script type="text/javascript">
var username = 'admin';//获取session.user.name
</script>
3.使用thymeleaf 的页面继承,包含时,如果项目中同时配置了jsp和thymeleaf模板,并且配置访问的规则是以.html/.jsp的形式。包含继承失效。
解决办法:
修改viewNames属性。以前缀的形式返回页.for example:
return "html/index";
return "jsp/index";
之后继续补充thymeleaf的坑。