NutzCN Logo
问答 ViewProcessor的ViewModel参数判断问题
发布于 2891天前 作者 hejiang2000 2034 次浏览 复制 上一个帖子 下一个帖子
标签:

https://github.com/nutzam/nutz/blob/master/src/org/nutz/mvc/impl/processor/ViewProcessor.java文件第35行

init方法中
if (params[i].isAssignableFrom(ViewModel.class)) {

是不是应该写成:

if (ViewModel.class.isAssignableFrom(params[i])) {

目前这样,它把我的HashMap参数认为是ViewModel了,后果很严重。

    @Override
    public void init(NutConfig config, ActionInfo ai) throws Throwable {
        //需要特别提醒一下使用jsonView,但方法的返回值是String的!!
        if("json".equals(ai.getOkView()) && String.class.equals(ai.getMethod().getReturnType())) {
            log.warn("Not a good idea : Return String ,and using JsonView!! (Using @Ok(\"raw\") or return map/list/pojo)--> " + Lang.simpleMethodDesc(ai.getMethod()));
        }
        view = evalView(config, ai, ai.getOkView());

        Class<?>[] params = ai.getMethod().getParameterTypes();
        for (int i = 0; i < params.length; i++) {
            if (params[i].isAssignableFrom(ViewModel.class)) {
                index = i;
                break;
            }
        }
        if (view instanceof ViewZone)
            ((ViewZone)view).setIndex(index);
    }
2 回复

额,貌似真的写错了

https://github.com/nutzam/nutz/issues/1209

快照版10分钟内更新, 如果不能使用快照版,可以改一下动作链的配置

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