
Thymeleaf Layout的共通逻辑
使用Thymeleaf的Layout Dialect时会遇到layout页面本身也有一些动态逻辑的情况。对于Spring MVC的情况,大概有这么几个解决方案。
使用公共的@ModelAttributes方法H2
把这些layout页面的数据放到@ModelAttributes中,这样所有调用到@ModelAttributes方法的Model中都会包含这些信息,就能够在layout中使用了。 但为了确保@ModelAttributes方法被调用到,需要通过继承或者@ControllerAdvice来实现。需要注意的是只应该对有页面渲染的Controller进行继承,那些Json/Download请求应该被跳过。
从模板调用Controller方法H2
把layout对应的Model对象直接通过Controller方法返回对象。然后在模板中通过th:with="[email protected]()"来调用Controller方法并设置到本地变量中。这样相关于layout页面有了自己的单独的Controller。
这样做的另外的好处是,如果出于一些用户体验的考虑,这个方法可以通过ajax被异步调用。从这个角度考虑,也可以把直接在模板中的调用理解成一次同步调用。
评论
新的评论
上一篇
Spring Boot DevTools
Java相对于其他的一些开发语言来说,修改代码后经常需要重新编译代码,重启服务器等等,这些动作非常的耗时间,降低了不少生产效率,所以热部署一直是Java的开发人员所追求的。从JRebel到Spring Loader,它们都可以达到JVM的Hot Swapping的目的。但是针对…
下一篇
Nginx proxy_pass
Proxy Pass Nginx使用 proxy_pass 来转发请求 需要注意的是,地址后面( http://www.example.com )是否跟随URI是不一样的,() 如果有路径,匹配 location 的部分会被URI替换掉 如果没有路径,则 location …
