我需要从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代码中的输入值。
答案 0 :(得分:1)
您需要在模板定义中指定modelClass
属性,并且FormModel
应该扩展info.magnolia.rendering.model.RenderingModelImpl<>
。您没有指定是否进行了任何操作,因此很难猜测那里可能出了什么问题。
如果您使用的是YAML,则定义应如下所示:
renderType: freemarker
templateScript: /my-module/templates/components/home.ftl
modelClass: my.awesome.FormModel