2

我有一个需要java代码的jsp页面。

这个jsp里面的java代码需要一个服务类。

现在我的服务类是使用 Spring DI 和 DAO 创建的 java,其他东西是使用 Spring 注入到服务类中的。

但是当我想在jsp中使用它时,我应该如何要求spring在jsp中为我提供服务对象?

JSP -> Java 代码 -> 服务 -> DAO

我使用 struts2 和 spring DI 作为框架。

4

2 回答 2

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). 是的,这打破了 bean 注入的概念,混淆了静态和非静态方法的使用,但是这样的任务总是会导致那些不公平的事情。

于 2012-04-09T12:40:27.343 回答
0

您不会注入 JSP 页面;您注入动作类并使用正常的 S2 机制进行访问。

于 2012-04-09T12:44:27.470 回答