如何在视图内显示对象的内容?

时间:2018-08-10 15:10:43

标签: java html ajax view

要上下文化:

我正在尝试使用AJAX

$.ajax({
    url : urlN, // <<- "/log"
    type: "post",
    success : function(json) {
        console.log(json);
        document.getElementById('content').innerHTML = json;
    }

setInterval(refreshDiv, 5000);

在每次“ X”次更新HTML页面(<div>)的仅一部分。问题是我无法获取文件的内容,因为我的控制器返回了我的视图名称,结果是:

enter image description here

经过几次尝试,我发现我无法传递视图名称,但是无法传递我想要访问的文件对象。在建议下,我添加了@ResponseBody表示法,以便自动为响应客户端而编写方法返回。但是,通过这样做,我最终“失去了”我的视图,唯一显示的返回内容就是内容本身,感觉到我不能有两个具有相同URL的控制器。就是说,我的问题被扭转了。

enter image description here

我想做的是,将这两个出口合而为一,例如:

enter image description here 控制器:

@RequestMapping(value = "/log", method = RequestMethod.POST)
    @ResponseBody
         //String  - View
    public Log jsonLogContent(@Valid Log log, BindingResult bindingResult, Map<String, Object> model) {
        if (log.getInitLine() == 0 && log.getFinalLine() == 0) {
            try {
                fileNumberLines(log);
                log.setPathFile(logsDir + "/" + log.getFilename());
                log.setContent(getLogContentByRange(0, log.getInitLine(), log.getFinalLine(), log.getPathFile()));
            } catch (IOException e) {
                logger.error(e.getMessage());
            }
        } else {
            log.setContent(getLogContentByRange(0, log.getInitLine(), log.getFinalLine(), logsDir + "/" + log.getFilename()));
        }

        // view
        model.put("path", logsDir);
        model.put("log", log);
        model.put("currentPage", "logs");
        model.put("root", root);
       //return "log"; - View

        return log;    // Obj
    }

所以,我的问题是:

我该怎么做?我如何先加载视图,然后再将对象加载到其中?我之所以这么问,是因为无论我做什么,显示的唯一内容就是@ResponseBody表示法,就是文件的内容。

0 个答案:

没有答案