struts2 一个CRUD的BaseAction
2014-06-22 14:26
260 查看
在struts2 in action中所见,这样封装后省去了大部分crud重复代码,虽然还不能理悟,先记下来。
abstract class BaseAction extends ActionSupport { protected DB db; protected static Log log = LogFactory.getLog(BaseAction.class); private long requestId; private boolean readOnly = false; private String mappedRequest; @SkipValidation public String show(){ setReadOnly(true); setMappedRequest(Constants.LIST); return SUCCESS; } @SkipValidation public String add(){ setMappedRequest(Constants.SAVE); return SUCCESS; } public String save(){ db.save(getModel()); return list(); } @SkipValidation public String edit(){ setMappingRequest(Constants.UPDATE); return SUCCESS; } public String update(){ db.save(getModel()); return list(); } @SkipValidation public String destroy(){ setReadOnly(true); setMappingRequest(Constants.REMOVE); return Constants.SUCCESS; } public String remove(){ db.remove(getModel()); return list(); } @SkipValidation public String list(){ setMappingedRequest(Constants.LIST); return Constants.LIST; } public String getActionClass(){ return getClass().getSimpleName(); } public String getDestination(){ return getClass().getSimpleName(); } public String getActionMethod(){ return mappedRequest; } public void setActionMethod(String method){ this.mappedRequest = method; } public void setMappedRequest(String actionMethed){ this.mappedRequest = getActionClass() + "_" + actionMethed; log.debug("setting mappedRequest to "+ getActionClass() + "_" + actionMethed); } public void setReadOnly(boolean readOnly){ this.readOnly = readOnly; log.debug("setting readOnly to "+readOnly); } public long getRequestId(){ return requestId; } public void setRequestId(long requestId){ this.requestId = requestId; } public void setDb(DB db){ this.db = db; } public boolean isReadOnly(){ return readOnly; } public abstract Object getModel(); }
public class MemberAction extends BaseAction implements ModelDriven,Preparable { private Member model; public Member getModel(){ return model; } public void prepare() throws Exception{ if(getRequestId() == 0){ model = new Member(); }else{ model = (Member) db.get(getRequestId); } } }
相关文章推荐
- struts2 一个CRUD的BaseAction
- struts2 中action的可重用性体现在:一个action可为不同请求所调用并完成不同的功能
- Struts2一个Action内包含多个请求处理方法的处理
- 道听途说Struts2之15:chain跳转到另外的一个包中的action
- struts2,jsp页用include访问一个action
- Struts2 使一个类成为Action的方式
- 用泛型写Struts2的BaseAction出错
- struts2的default-action-ref 的一个“BUG”(其实并非bug)
- struts2 的一个action中配置多个result input
- Struts2开发中在一个action中调用令一个action
- struts2为每个线程提供一个action实例
- Struts2泛型通用crud的action,让一切变得简单起来
- Struts2 一个Action实现多个业务逻辑
- struts2中多个submit向一个Action提交
- struts2 文件上传(指定上传图片,单文件上传和批量上传放在一个jsp和Action中)
- Struts2中Action方法的动态调用(一个Actiong有两个方法)
- Struts2中典型CRUD Action的抽象基类
- 超简单方法解决Struts2中一个action处理多个请求
- Struts2一个Action内包含多个请求处理方法的处理,method的使用方法,struts2中的路径问题,通配符映射
- struts2 中同一个action的实现中对应多个input的处理方法