NutzCN Logo
问答 nutz 的 fileter 里面实现的 match() 方法中如何返回 beetl 视图
发布于 2208天前 作者 wdhlzd 1345 次浏览 复制 上一个帖子 下一个帖子
标签:

请问在 nutz 的 fileter 里面实现的 match() 方法的返回值是 View
在这种情况下,我想用 beetl 的视图,应该如何写呢?
在 module 里是用 @Ok("beetl:..."),return 一个对象,beetl 就能用这个对象去写页面了
用的是 org.beetl.ext.nutz 的 BeetlView

8 回复

需要分2步

首先,在MainSetup的init,通过NutConfig实例,nc.getViewMakers()获取BeetlViewMaker,

然后将其存放到一个public static变量, 就可以用它来建BeetlView了 maker.maker(null, "beetl", "xxx/xxx/xxx")

或者BeetlViewMaker拿到WebRender实例, 也可以直接new BeetlView

nc.getViewMakers() 得到的是一个 ViewMaker[] 数组,哪个元素是 BeetlViewMaker 呢?

nc.getViewMakers() 得到的是一个 ViewMaker[] 数组,哪个元素是 BeetlViewMaker 呢?

遍历判断一下嘛

好的,谢谢

麻烦再问下,如何把对象传给 BeetlView 呢?
就是 render() 的 obj,我不想放到 session

public void render(HttpServletRequest req, HttpServletResponse resp, Object obj) throws Throwable {
        String child = evalPath(req, obj);
        if (child == null) {
            child = Mvcs.getActionContext().getPath();
        }
        if (obj != null && req.getAttribute("obj") == null)
            req.setAttribute("obj", obj);
        if (resp.getContentType() == null)
        	resp.setContentType("text/html");
        render.render(child, req, new LazyResponseWrapper(resp));
    }
return new ViewWrapper(new BeetlView(....), obj);

添加回复
请先登陆
回到顶部