2012-04-09 5 views
2

私はJavaコードを必要とするjspページを持っています。JSPでのスプリングインジェクション

jsp内のこのJavaコードには、サービスクラスが必要です。

私のサービスクラスはJavaであり、Spring DIとDAOを使用して作成されます。&他のものはSpringを使用してサービスクラスに注入されます。

しかし、私はjspでそれを使いたいのですが、jspの中にサービスオブジェクトを提供するにはどうすればよいですか?

JSP - > Javaコード - >サービス - > DAO

私はフレームワークとしてStruts2の&春DIを使用しています。

+0

本当に誰が何を望んでいるのか混乱しています。混乱を避けるためにいくつかのコードを提供してください。 – xyz

+0

あなたがこれをやろうとしているなら、基本的に正しいことをしていないと言わざるを得ない.JSPはあなたのサービス層やS2のアクションクラスで作業することを目的としていない。 –

+0

これは間違って書かれているが、 ( –

答えて

3

Springで管理され、アプリケーションコンテキストを意識したクラスを作成できます。このクラスは、コード内のどこからでも静的メソッドを介してSpring Beanを提供します。

@Service 
public class SpringBeansProvider implements ApplicationContextAware { 

    static private ApplicationContext applicationContext; 

    public static <T> T getBean(String beanName, Class<T> type) { 
     return applicationContext.getBean(beanName, type); 
    } 

    @Override 
    public void setApplicationContext(ApplicationContext context) { 
     applicationContext = context; 
    } 

} 

コードのどこからでもSpringBeansProvider.getBean("myBean", MyBean.class)を使用してください。はい、これは豆の注入の概念を分解し、静的メソッドと非静的メソッドの使用法を混ぜますが、この種のタスクは常にその不公正なものを引き起こします。

+0

ありがとうございましたAlexey)アプリケーションコンテキスト内でこのクラスに対して実行する設定は何ですか? –

+0

いいえ、アプリケーションコンテキストでこのクラスBeanを持つだけで十分です。 –

0

JSPページには挿入しません。アクションクラスに注入し、通常のS2メカニズムを使用してアクセスします。

関連する問題