今天在QQ群里遇到一只菜鸟,问在自定义标签中使用struts的datasource,在反复告知他方法不行的情况下,愤怒的写出了代码,帖下来,以后别人可能也会用的到
import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
import javax.sql.DataSource;
import org.apache.struts.config.ModuleConfig;
import org.apache.struts.util.ModuleUtils;
public class TestTag extends TagSupport {
private static DataSource getStrutsDataSource(HttpServletRequest request,ServletContext context, String key){
ModuleConfig moduleConfig =
ModuleUtils.getInstance().getModuleConfig(request, context);
return (DataSource) context.getAttribute(key + moduleConfig.getPrefix());
}
public int doStartTag() throws JspException {
ServletContext context=pageContext.getServletContext();
ServletRequest request=pageContext.getRequest();
DataSource ds=getStrutsDataSource((HttpServletRequest)request,context,"datasource的名称");
return 0;
}