我想知道是否有人可以提供帮助。我们正在将 Spring Webflow 2 应用程序从使用基于 jsp 的视图层转换为基于 Thymeleaf 的视图。
在大多数情况下,这是可以的,但现在我正在努力让 Thymeleaf 访问我们放在servletContext
.
servletContext
因此,我们有一个对象作为 bean的一部分放入(实现ServletContextAware
and InitializingBean
)
为了简单起见,假设它是一个字符串:
public class ReferenceDataBuilder implements ServletContextAware, InitializingBean {
public void setServletContext(ServletContext p_context) {
p_context.setAttribute("referenceData", "test text" );
}
在我们基于 jsp 的视图中,我们可以referenceData
像这样访问对象:
<p><c:out value="${referenceData}"/></p>
通过 Spring EL 的魔力,它知道它可以访问的各种范围(servletContext
、flowScope
等flashScope
),并且(我猜?)搜索每个范围,直到找到匹配的属性。结果是:
<p>test text</p>
在视图中呈现。
在我们的 thymeleaf 模板中,我们正在尝试做同样的事情:
<p th:text="${referenceData}"/></p>
但这只是返回一个空字符串。视图呈现一个空字符串:
<p></p>
(但我认为 EL 实际上是作为 null 返回的)
我很确定如果该referenceData
对象是一个范围的属性,例如flowScope
orflashScope
这会起作用 - 但它不是,它是servletContext
.
有谁知道百里香是否可以servletContext
通过 EL 访问?也许我需要使用不同的语法?
干杯
弥敦道