NutzCN Logo
问答 org.nutz.mvc.ActionFilter 这个里面 怎么注入 dao?
发布于 3377天前 作者 tantao700 3499 次浏览 复制 上一个帖子 下一个帖子
标签: mvc ioc

public class CheckSession implements ActionFilter {

** @Inject **
** private Dao dao;**
private String name;
private String path;

public CheckSession(String name, String path) {
    this.name = name;
    this.path = path;
}

public View match(ActionContext context) {
    HttpSession session = Mvcs.getHttpSession(false);
    if (session == null || null == session.getAttribute(name))
        return new ServerRedirectView(path);
    return null;
}

}

2 回复

还是自问自答吧~
ActionFilter 中注入Ioc的服务
分为两步:
1.在Ioc中进行注册:
var ioc={
....
,
checkPermissionFilter:{
type:"org.nutz.mvc.filter.CheckPermission",
args:[{refer:"dao"},"/login"]
}
}
2.在使用的时候:
@Filters(@By(type = CheckPermission.class, args = {"ioc:checkPermissionFilter"}))
这样进行使用

方法很多

第一种, 通过ActionContext 取

Ioc ioc = context.getIoc();
Dao dao = ioc.get(Dao.class);

第二种,把ActionFilter 声明为一个ioc的bean,然后这样写

@Filters(@By(type=ActionFilter.class, args="ioc:xxxFilter"))

第三种, 通过Mvcs, 其实就是第一种的变形, 没什么理由使用

Ioc ioc = Mvcs.getIoc()
Dao dao = ioc.get(Dao.class);
添加回复
请先登陆
回到顶部