废话不多说直接上代码。
package com.d3gh.web;
import java.lang.reflect.ParameterizedType;
import com.jfinal.core.Controller;
import com.jfinal.plugin.activerecord.Model;
/**
*
* @ClassName: BaseController
* @Description: TODO(这里用一句话描述这个类的作用)
* @author xsg xsg2006@126.com
* @date 2015年2月6日 上午11:02:59
* @param <T>
*/
public class BaseController<T> extends Controller{
private final Class<T> classT;
@SuppressWarnings("unchecked")
public BaseController(){
this.classT = (Class<T>)( (ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}
/**
*
* save 方法 基类中的保存方法
* <p>注意提交的参数需要以这样的方式提交 xxxModel.name=</p>
* @return void
* @author xsg2006@126.com
* @date 2015年1月12日 下午4:52:15
*/
public void save(){
Model<?> model = (Model<?>) getModel(classT);
renderJson(model.save());
}
/**
*
* delete 方法 基类中的删除方法
* <p>方法说明:提交参数时以 xxxModel.name=的形式进行提交</p>
* @return void
* @author xsg2006@126.com
* @date 2015年1月12日 下午5:03:33
*/
public void delete(){
Model<?> model = (Model<?>) getModel(classT);
renderJson(model.delete());
}
public void deleteById(){
Model<?> model = null;
Object id = null;
try {
model = (Model<?>) classT.newInstance();
} catch (InstantiationException | IllegalAccessException e) {
e.printStackTrace();
}
id = getPara("id");
renderJson(model.deleteById(id));
}
public void queryById(){
Model<?> model = null;
Object id = null;
try {
model = (Model<?>) classT.newInstance();
id = getPara("id");
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
renderJson(model.findById(id));
}
}