您的位置:首页 > 其它

表现层BaseAction的抽取

2016-12-15 17:22 399 查看
表现层抽取



代码实现

/**
*
* @author YaoSone
* @param <T>
*
*/
public class BaseAction<T> extends ActionSupport implements ModelDriven<T>{
private T model;
protected final String HOME="home";
@Override
public T getModel() {
return model;
}
//  动态创建model实例
public BaseAction() {
//      当前类的字节码
//      获取父级别的类型
ParameterizedType genericSuperclass = (ParameterizedType) this.getClass().getGenericSuperclass();
//      获取泛型的参数类型
Type[] actualTypeArguments = genericSuperclass.getActualTypeArguments();
//      创建对象,处理异常,赋值model
Class<T> type = (Class<T>) actualTypeArguments[0];
try {
model = type.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}


其他层代码

@Controller("userAction")
@Scope("prototype")
public class UserAction extends BaseAction<User> {
//  提供UserService属性,可不提供set方法.==>直接注解注入
@Resource(name="userService")
private UserService  userService;
//属性驱动,接收页面用户输入的验证码
private String checkcode;
//登录方法
public String login(){
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: