вторник, 2 июня 2009 г.

Initialize spring request/session beans

For that create simple filter:

package org.dio.util;

import java.io.IOException;
import java.util.Set;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

import org.apache.log4j.Logger;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

public class SpringHelperFilter implements Filter {
private static Logger log = Logger.getLogger(SpringHelperFilter.class);
private WebApplicationContext webApplicationContext;

public void destroy() {}

public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
// init singleton beans
String[] sa = webApplicationContext.getBeanDefinitionNames();
for (String s : sa) {
if (!webApplicationContext.isSingleton(s)) {
log.trace("get bean " + s);
webApplicationContext.getBean(s);
}
}

chain.doFilter(req, resp);
}

public void init(FilterConfig conf) throws ServletException {
webApplicationContext =
WebApplicationContextUtils.getWebApplicationContext(conf.getServletContext());
}

}

and configure it in web.xml

<filter>
<filter-name>SpringHelperFilter</filter-name>
<filter-class>org.dio.util.SpringHelperFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>SpringHelperFilter</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>

Now we can use beans from application context in our .jsp files

Комментариев нет:

Отправить комментарий