我正在开发一个使用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();
},
答案 0 :(得分:0)
由于FreeMarker是服务器端技术,因此AJAX方法必须返回在服务器端使用FreeMarker呈现的HTML。因此,所有模板都保留在服务器端,只有一些用于正常响应,有些用于AJAX响应。当然,如果调用的AJAX服务不专门为您的UI提供服务,那么这将无法正常工作,您必须寻找JavaScript模板引擎。