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>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值