package cn.it.shop.action; import java.io.InputStream; import java.lang.reflect.ParameterizedType; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.apache.struts2.interceptor.ApplicationAware; import org.apache.struts2.interceptor.RequestAware; import org.apache.struts2.interceptor.SessionAware; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import cn.it.shop.model.FileImage; import cn.it.shop.service.AccountService; import cn.it.shop.service.CategoryService; import cn.it.shop.service.ForderService; import cn.it.shop.service.PayService; import cn.it.shop.service.ProductService; import cn.it.shop.service.SorderService; import cn.it.shop.service.UserService; import cn.it.shop.utils.FileUpload; import cn.it.shop.utils.EmailUtil; import cn.it.shop.utils.MessageUtil; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; /* * Struts执行流程:先创建Action,再调用拦截器,拦截器访问成功再调用Action的方法 * 在项目启动的时候Struts的过滤器,已经把相应的内置对象,和内置对象对应的Map存储到了ActionContext和值栈中 * 如果实现了相应的xxxAware接口,就会从ActionContext中获取相应的Map进行传入。实现这个的拦截器为:servletConfig * servletConfig:有如下代码:判断当前实现什么接口,则会注入相应的对象 * if (action instanceof ApplicationAware) { ((ApplicationAware) action).setApplication(context.getApplication()); } if (action instanceof SessionAware) { ((SessionAware) action).setSession(context.getSession()); } if (action instanceof RequestAware) { ((RequestAware) action).setRequest((Map) context.get("request")); } */ @Controller("baseAction") @Scope("prototype") public class BaseAction<T> extends ActionSupport implements RequestAware,SessionAware,ApplicationAware,ModelDriven<T> { //封装了图片信息的类 protected FileImage fileImage; //用来装有将要被打包成json格式返回给前台的数据,下面要实现get方法 protected List<T> jsonList = null; //获取要删除的ids,要有get和set方法 //流是用来想前台返回数据的,这个数据是让struts获取的,然后通过流的形式传到前台,所以实现get方法即可 protected String ids; protected InputStream inputStream; //page和rows和分页有关,pageMap存放查询的数据,然后打包成json格式用的 //page和rows实现get和set方法,pageMap只需要实现get方法即可,因为pageMap不是接收前台参数的,是让struts获取的 protected Integer page; protected Integer rows; protected Map<String, Object> pageMap = null; //service对象 @Resource protected CategoryService categoryService; @Resource protected AccountService accountService; @Resource protected ProductService productService; @Resource protected ForderService forderService; @Resource protected SorderService sorderService; @Resource protected UserService userService; @Resource protected PayService payService; @Resource protected EmailUtil emailUtil; @Resource protected MessageUtil messageUtil; //上传文件工具类 @Resource protected FileUpload fileUpload; //域对象 protected Map<String, Object> request; protected Map<String, Object> session; protected Map<String, Object> application; @Override public void setApplication(Map<String, Object> application) { this.application = application; } @Override public void setSession(Map<String, Object> session) { this.session = session; } @Override public void setRequest(Map<String, Object> request) { this.request = request; } //ModelDriven protected T model; @Override public T getModel() { ParameterizedType type = (ParameterizedType)this.getClass().getGenericSuperclass(); Class clazz = (Class)type.getActualTypeArguments()[0]; try { model = (T)clazz.newInstance(); } catch (Exception e) { throw new RuntimeException(e); } return model; } //get和set方法 public Integer getPage() { return page; } public void setPage(Integer page) { this.page = page; } public Integer getRows() { return rows; } public void setRows(Integer rows) { this.rows = rows; } public Map<String, Object> getPageMap() { System.out.println("--getPage--"); return pageMap; } public String getIds() { return ids; } public void setIds(String ids) { this.ids = ids; } public InputStream getInputStream() { return inputStream; } public List<T> getJsonList() { return jsonList; } public FileImage getFileImage() { return fileImage; } public void setFileImage(FileImage fileImage) { this.fileImage = fileImage; } }
最近下载更多
微信网友_6880571174621184 LV1
3月24日
an7654 LV1
2023年10月9日
陆程江 LV2
2023年5月29日
jierffff LV2
2023年4月20日
天下无敌啦啦啦啦啦 LV2
2023年2月3日
反复发烧 LV1
2023年1月28日
wuying8208 LV15
2023年1月1日
二十一画 LV10
2022年6月25日
wanglinddad LV55
2022年4月18日
1358677997 LV2
2021年12月27日
最近浏览更多
微信网友_6880571174621184 LV1
3月24日
jiemomo LV12
2023年11月6日
微信网友_6707371254878208
2023年10月25日
暂无贡献等级
an7654 LV1
2023年10月9日
我是高手 LV1
2023年9月17日
SDLFJL LV6
2023年7月23日
include LV8
2023年6月20日
yemmmm666 LV1
2023年6月12日
陆程江 LV2
2023年5月23日
3516569014 LV5
2023年5月8日