Thymeleaf 表达式对象:#session 和 ${session....}

Thymeleaf expression objects: #session and ${session....}

在 Thymeleaf 中有两种获取会话属性的方法:

  1. ${#session.getAttribute('attr')}
  2. ${session.attr}

session"objects"两者有什么区别?有没有一种情况,一个可以工作,另一个不行?

#session 用法仅适用于 Web 上下文,即。它是直接访问与当前请求关联的 javax.servlet.http.HttpSession 对象的助手。 documentation 中明确说明了这一点。所以你在这里直接访问 Context 对象,而不是 thymeleaf 定义的变量。

$session 是访问会话属性的快捷方式。这不是上下文对象,而是作为变量添加到上下文中的映射,由 thymeleaf 显式添加。你可以找到相关资料here.