誰か助けてくれないかしら。現在、SpringWebflow2アプリケーションをjspベースのビューレイヤーの使用からThymeleafベースのビューに変換中です。
このほとんどの部分でこれは問題ありませんが、Thymeleafがに配置したオブジェクトにアクセスできるようにするのに苦労していますservletContext
。
つまり、servletContext
Beanの一部としてに配置されるオブジェクトがあります(実装ServletContextAware
と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
またはこれが機能する場合は、かなり確信していますが、flashScope
そうではなく、のプロパティですservletContext
。
thymeleafがservletContext
EL経由でアクセスできるかどうか誰かが知っていますか?おそらく、私が使用する必要のある別の構文がありますか?
乾杯
ネイサン