struts2 一个CRUD的BaseAction

在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,布布扣,bubuko.com

时间: 2024-12-17 13:50:37

struts2 一个CRUD的BaseAction的相关文章

struts2 一个简洁的struts.xml

struts.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts>

Struts2的CRUD操作

Struts之CRUD 1何为CRUD:CRUD代表的是一个框架的Create(增),Read(读取),update(更新),Delete(删除) 2怎么做呢?? 其实Struts2的CRUD与现实的方法一样,只是在属性的设置和获取上更方便了,因为了值栈吖,有了OGNL对象表达式,所以Struts2的CRUD显为更加方便 废话不多说了,下面就来个分析吧!!(与数据库连接部分就用data来代替) Create------>增:添加数据,保存数据到数据库 肯定就是获得一个保存的对象吧,但是提交的Ac

Struts2一个Action内包含多个请求处理方法的处理,method的使用方法,struts2中

struts2的关于method="{1}"意思详解 <action   name= "Login_* "   method= "{1} "   class= "mailreader2.Login ">中Login_*带*是什么意思?method= "{1} "带{}这个是什么意思?====================================================name=

Struts2的CRUD

利用struts2完成增删改查 1.导入相关的pom依赖(struts.自定义标签库的依赖) <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.o

struts2一个实例中遇到的问题

今天实现了一个登录功能的Struts2小程序. 期间遇到了许多问题,记忆犹新的是 (1)新版本的tomcat9和eclipse Neon Release (4.6.0) 发生了冲突,启动服务器的时候老是有警告,但是又找不到问题,不得已回滚到了以前的tomcat8,没想到竟然好了!好了?这时候心里真特么复杂(整一天了!) (2)因为仅仅是测试一下环境,所以去网上找了程序,因为看到了两篇博客都挺不错的,就综合了一下,万万没想到,就因为这个疏忽,导致了程序出了致命的错误. 比如:导入jar包的时候起了

《Entity Framework 6 Recipes》中文翻译系列 (20) -----第四章 ASP.NET MVC中使用实体框架之在MVC中构建一个CRUD示例

翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第四章  ASP.NET MVC中使用实体框架 ASP.NET是一个免费的Web框架,它支持3种不同的技术来创建websites(网站)和Web应用:他们分别是,Web Pages,Web Forms,和MVC.虽然MVC是一种非常流行的,有完整的用于软件开发模式理论的技术,但它在ASP.NET中却是一种新的技术. 目前最新的版本是2012年发布的ASP.NET MVC4.自从2008年发布

Struts2——一个用来开发 MVC 应用程序的框架

使用 Filter 作为控制器的 MVC 1.MVC 设计模式概览 Struts2 是一个用来开发 MVC 应用程序的框架. 它提供了 Web 应用程序开发过程中的一些常见问题的解决方案: 对来自用户的输入数据进行合法性验证 统一的布局 可扩展性 国际化和本地化 支持 Ajax 表单的重复提交 文件的上传下载. 2.Struts2 VS Struts1: 在体系结构方面更优秀: 类更少, 更高效: 在 Struts2 中无需使用 “ActionForm” 来封装请求参数. 扩展更容易: Stru

struts2一个404错误的解决

There is no Action mapped for namespace / and action name login. - [unknown location] 解决方式将struts.xml配置文件中的package标签中的namespace属性写成 namespace=""; 解释笔记 struts2中是采用<package>元素来管理Action的,package的作用类似于java中的类包.它管理一组业务功能相关的action.而namespace属性可以

关于Struts2中Action从表单取值并且存到Web元素中(session)

声明:本博客非原创,[转载:http://blog.csdn.net/Cece_2012/article/details/7617775] 在struts2中,Action不同于struts1.x中的Action.在struts2中Action并不需要继承任何控制器类型或实现相应接口.比如struts1.x中的Action需要继承Action或者DispatcherAction. 同时struts2中的Action并不需要借助于像struts1.x中的ActionForm获取表单的数据.可以直接