私のJSPページでアプリケーションコンテキストを取得しようとしています。 私はJSPで以下のスクリプトレットを持っています。JSPでnull nullのアプリケーションコンテキスト
WebApplicationContext appCtx = WebApplicationContextUtils.getRequiredWebApplicationContext(config.getServletContext());
MyClass myClass = (MyClass)(appCtx.getBean("myClass"));
これを使用すると、アプリケーションコンテキストに対してNULLポインタ例外がスローされます。 ここで何が間違っていますか? 私はアプリケーションコンテキストを必要としないので、application-context.xmlファイルはありません。私は通常のディスパッチャ - servlet.xmlにハンドラマッピングを持っています。
また、追加情報として: 外部環境変数から読み込み、 "myClass"に注入するPropertyPlaceholderConfigurerを使用して注入されているこの "myClass"オブジェクトにアクセスしようとしています。すべてのポインタ?
更新:
示唆したように、私は「RequestContextUtils」を使用してみましたが、現在は「いいえWebApplicationContextが見つかり:ないDispatcherServletの要求に」取得しています例外。 BeanにアクセスしようとしているJSPがアプリケーションのエントリポイントです。 マイビューリゾルバは次のようになり、
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
<property name="exposedContextBeanNames">
<value>myClass</value>
</property>
</bean>
JSPがアクセスしようとしていますが、この「意見」フォルダの外にあります。お知らせください
私はSpring MVCを実行しませんが、Spring MVCではEL '$ {myClass} 'だけではありませんか?とにかくJavaコードはJSPに属していません。 – BalusC
なぜJSP内のアプリコンテキストにアクセスしようとしていますか?あなたはMVCを使用しています、ビュー層のためのものはコントローラを通して公開されるべきです。 –
@BalusC:ビューリゾルバがBeanを属性として公開するように設定されている場合のみ。 – axtavt