使用Magnolia Java从模型访问脚本模板数据

时间:2019-02-01 05:03:19

标签: java templates magnolia

我需要从Magnolia Java模型访问通过Magnolia脚本模板输入的数据。

我尝试设置参数和定义。我尝试使用定义和内容节点的不同属性。

public FormModel(Node content, ConfiguredTemplateDefinition definition, RenderingModel<?> parent) {
    super(content, definition, parent);
}

public String execute() {

    HttpServletRequest request = MgnlContext.getWebContext().getRequest();
    if ("POST".equals(request.getMethod())) {
        try {
            //Access the name input from the template script
        }
        catch(Exception e) {
            System.out.print(e);
        }
    }

    return super.execute();
}

}

<form method="post">
    <div>
        <label>Name:</label>
        <input type="text" name="name"/>
    </div>
</form>

我希望能够访问Java代码中的输入值。

1 个答案:

答案 0 :(得分:1)

您需要在模板定义中指定modelClass属性,并且FormModel应该扩展info.magnolia.rendering.model.RenderingModelImpl<>。您没有指定是否进行了任何操作,因此很难猜测那里可能出了什么问题。

如果您使用的是YAML,则定义应如下所示:

renderType: freemarker
templateScript: /my-module/templates/components/home.ftl
modelClass: my.awesome.FormModel