我需要通过玉兰脚本模板来访问数据被输入,从玉兰Java模型。
我曾尝试使用参数设置和定义。我一直在使用的定义和内容节点的不同特性尝试。
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代码中输入的值。
你需要在你的模板定义指定modelClass
属性,FormModel
应该扩展info.magnolia.rendering.model.RenderingModelImpl<>
。您没有指定,如果你没有任何这些,所以这是很难猜测可能是错在那里。
如果您使用YAML的定义应该是这样的:
renderType: freemarker
templateScript: /my-module/templates/components/home.ftl
modelClass: my.awesome.FormModel