发布网友 发布时间:2022-09-19 13:06
共1个回答
热心网友 时间:2023-10-28 01:35
这就是model层的设计思路
这就是分层结构,对于较大的web应用来说设计良好的model层绝对是必须的,他可以简化很多代码和数据库操作,而且使用面向借口编程可以自己定制特定的功能。至于你的理解差不多正确,struts2采用valuestack来实现前后台的数据共享传输,他会把值封装到model中,所以action实现implements ModelDriven<T>里的getModel()就可以获取的封装好的参数了。
给你一个自己写的BaseAction:你的action继承他就行了
public class BaseAction<T> implements ModelDriven<T>{
@Resource
protected UserService userService;//action需要用到的service都可以在这里注入
protected Class clazz;
protected T model;
//使用反射获取T的真实类型
public BaseAction(){
try{
Class<T> clazz = null;
ParameterizedType pt = (ParameterizedType)this.getClass().getGenericSuperclass();
clazz = (Class<T>) pt.getActualTypeArguments()[0];
this.model = clazz.newInstance();
}catch (Exception e) {
e.printStackTrace();
}
}
public T getModel() {
return model;
}
}