如何抑制 freemarker 模板文件中的附加内容?

How do I suppress additional content in freemarker template file?

我的公司使用 java 精简版(活动网络)和 freemarker 模板在一些旧版网页中显示。我编写了一个活动的 Web AppController,它转发到一个 ftl 显示文件(freemarker 模板),我能够看到 'hello world' 内容。然而不知何故,该页面也获得了我们的标准网站页眉和页脚内容,我不知道如何抑制它或在哪里查看。 javalite 是否有一些全局配置说要包括所有页面的页眉和页脚并且可以抑制它?

public class MfaController extends AppController {
    @GET
    public void registration()  {
        //does nothing
    }
}

registration.ftl:

<html>
<body>hello world</body>
</html>

JavaLite 没有使用配置文件。相反,它使用约定。您观察到的是默认行为。 默认布局位于

src/main/webapp/WEB-INF/views/layouts/default_layout.ftl

应用于所有网页,除非您告诉框架您不需要它。

如果您不需要布局,可以通过重写 getLayout() 方法将其关闭:

public class MfaController extends AppController {

    public void registration()  {
        //does nothing
    }
    public String getLayout(){
        return null;
    }
}

另一种解决方案如下所示:

public class MfaController extends AppController {
    public void registration()  {
         render().noLayout();
    }
}

此外,@GET 注释是多余的,如果 public 所有操作默认都是 GET。

这是文档: https://javalite.io/views#default-layout