package com.opentravelsoft.webapp.interceptor; import java.util.List; import java.util.Map; import javax.servlet.ServletContext; import com.opensymphony.xwork2.*; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; import com.opentravelsoft.common.EbizCommon; import com.opentravelsoft.entity.ProductItem; import com.opentravelsoft.entity.SysConfig; import com.opentravelsoft.entity.product.ProductType; import com.opentravelsoft.service.product.ProductService; import com.opentravelsoft.service.setting.SysConfigService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts2.ServletActionContext; import org.springframework.beans.factory.annotation.Autowired; public class SysSettingInterceptor extends AbstractInterceptor { private static final long serialVersionUID = 7884275706687577353L; protected static final Log logger = LogFactory .getLog(SysSettingInterceptor.class); @Autowired private ProductService productService; @Autowired private SysConfigService configService; public String intercept(ActionInvocation actionInvocation) throws Exception { logger.debug("intercepter sys setting."); ServletContext context = ServletActionContext.getServletContext(); ActionContext act = actionInvocation.getInvocationContext(); Map<String, Object> application = act.getApplication(); String gingkgoHome = System.getProperty("gingkgo.home"); if (null == gingkgoHome) System.setProperty("gingkgo.home", context.getRealPath("")); // 设置产品组成 if (null == application.get(EbizCommon.EBIZ_APP_PACKAGE_ITEM)) { List<ProductItem> items = productService .getProductItems(ProductType.Package); application.put(EbizCommon.EBIZ_APP_PACKAGE_ITEM, items); } // 设置产品组成 if (null == application.get(EbizCommon.EBIZ_SYS_CONFIG)) { List<SysConfig> items = configService.getAllConfig(); for (SysConfig config : items) { application.put(config.getName(), config.getValue()); } application.put(EbizCommon.EBIZ_SYS_CONFIG, "OK"); } ActionContext.getContext().getValueStack().push(this); return actionInvocation.invoke(); } }