在Ajax调用

时间:2018-01-22 14:21:54

标签: javascript json ajax spring-mvc freemarker

我正在开发一个使用Freemarker(FTL)作为前端技术的门户网站。整个项目基于单个ftl页面,并使用向导处理不同类型的用户请求。在后端我使用了Spring MVC模式,其中控制器将处理用户请求。我正在使用AJAX调用导航向导并显示数据屏幕。

在单击按钮上调用java脚本函数,该函数进一步使用ajax来调用控制器方法。控制器方法执行一些业务逻辑并返回所需的数据。

现在我的要求是在FTL页面的特定分区中显示ajax调用数据。我正在使用@ResponseBody将JSON respose返回给ajax调用。

我现在使用下面的ajax方法在我的屏幕的特定部分加载数据。但是,我需要在Java脚本部分编写HTML标记以加载内容。但是我不想在这个Ajax调用部分中编写HTML标记。我想从ajax调用返回Object,并在所需的分区上使用正确的FTL标记来获取和加载数据。 非常具体 - $(“#result”)。html(respContent);部分给我提供返回HTML页面的选项。但我想返回一个可以在FTL标签中解析的对象/实体。

非常感谢提前

       $.ajax({
        type : "GET",
        cache:false,
        url : "home",
        data : {},
        success : function(mwaCatlogueProfile) {
            alert('data : '+ mwaCatlogueProfile);
            console.log("SUCCESS: ", mwaCatlogueProfile);

            var respContent = "";
            respContent += "<span class='success'> <b>Please find server list:</b>";
            respContent += " </br>";
            respContent += mwaCatlogueProfile.environment + "</span>";

            $("#result").html(respContent);
            wizard.show();
        },

1 个答案:

答案 0 :(得分:0)

由于FreeMarker是服务器端技术,因此AJAX方法必须返回在服务器端使用FreeMarker呈现的HTML。因此,所有模板都保留在服务器端,只有一些用于正常响应,有些用于AJAX响应。当然,如果调用的AJAX服务不专门为您的UI提供服务,那么这将无法正常工作,您必须寻找JavaScript模板引擎。