thymeleaf抽取公共片段时需注意的问题
日常开发中,我们经常会将导航栏、页尾、菜单等部分提取成模板供其它页面使用。
在Thymeleaf 中,我们可以使用th:fragment属性或直接使用id属性来定义一个模板。
但在开发中可能会遇到这样的问题,将公共片段抽取出来后引入到其他页面时,会报页面500的错误,很明显,是页面模版解析出现问题,追根溯源,回到抽取出来的模版页面找找问题,果然,有报红
很明显是因为我在controller中的LoginController类中,存放的model并没有返回到我抽取出来的这个页面,那么这个页面就没有user.email这个内容,所以才会出现500错误
这样的话,只要其他页面引入了公共页面的模版进去,但又没有model值返回该页面,就会报错,所以我选择放弃model存放,改用session存放,这样不论哪个页面要引用该公共模版,都可以取到session值,就不会再报500错了
这是在LoginController中使用session来存放内容
这是在抽取出来的公共模版上修改后的取值内容
到此,就可以使用thymeleaf抽取公共模版来供其他页面使用,大大增加了开发效率