Struts2中Action-代码抽取
代码:
基类:
package com.dx.action;
import java.lang.reflect.ParameterizedType;
import java.util.Map;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
@SuppressWarnings("unchecked")
public class BaseAction<T> extends ActionSupport implements ModelDriven<T>,
RequestAware,SessionAware,ApplicationAware{
private static final long serialVersionUID = 1L;
protected Map<String,Object> req;
protected Map<String,Object> session;
protected Map<String,Object> app;
protected T model;
@Override
public T getModel() {
return model;
}
@SuppressWarnings("rawtypes")
public BaseAction(){
ParameterizedType type = (ParameterizedType)this.getClass().getGenericSuperclass();
Class clazz = (Class)type.getActualTypeArguments()[0];
try {
model = (T)clazz.newInstance();
}catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void setApplication(Map<String, Object> app) {
this.app = app;
}
@Override
public void setSession(Map<String, Object> session) {
this.session = session;
}
@Override
public void setRequest(Map<String, Object> req) {
this.req = req;
}
}
子类:
package com.dx.action;
import java.util.List;
import com.dx.pojo.User;
import com.dx.service.UserService;
public class UserAction extends BaseAction<User>{
private static final long serialVersionUID = 1L;
private UserService userService;
public void setUserService(UserService userService) {
this.userService = userService;
}
//添加用户
public String addUser(){
userService.save(model);
return "success";
}
//删除
public String delete(){
int uid = model.getUid();
userService.delete(uid);
List<User> l = userService.queryAll();
req.put("users", l);
return "list";
}
//跳转更新页面
public String update(){
int uid = model.getUid();
User user = userService.fetch(uid);
req.put("user", user);
return "update";
}
//更新用户
public String updateUser(){
userService.update(model);
List<User> l = userService.queryAll();
req.put("users", l);
return "list";
}
//查询所有用户
public String queryUser(){
List<User> l = userService.queryAll();
req.put("users", l);
return "list";
}
//根据姓名查询
public String queryByName(){
String uname = model.getUname();
List<User> l;
if(uname != null && uname.length() != 0){
l = userService.queryByName(uname);
}else{
l = userService.queryAll();
}
req.put("users", l);
return "list";
}
}
spring配置:
<bean id="baseAction" class="com.dx.action.BaseAction" scope="prototype"></bean>
<bean id="userAction" class="com.dx.action.UserAction" scope="prototype" parent="baseAction">
<property name="userService" ref="userService"></property>
</bean>
还没有评论,来说两句吧...