Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Freemarker方法无法接受对象作为参数_Java_Freemarker - Fatal编程技术网

Java Freemarker方法无法接受对象作为参数

Java Freemarker方法无法接受对象作为参数,java,freemarker,Java,Freemarker,我正在尝试将Freemarker HashLiteral传递给我的自定义方法,如下所示: <a href="${href("Item", {"item": item})}">...</a> 即使href方法的正文为空,也会发生这种情况: public TemplateModel exec(List args) throws TemplateModelException { return new SimpleScalar(""); } 谢谢可能是href是模板方

我正在尝试将Freemarker HashLiteral传递给我的自定义方法,如下所示:

<a href="${href("Item", {"item": item})}">...</a>
即使
href
方法的正文为空,也会发生这种情况:

public TemplateModel exec(List args) throws TemplateModelException {
    return new SimpleScalar("");
}

谢谢

可能是
href
模板方法模型
而不是
模板方法模型
TemplateMethodModel.exec(args)
中的
args
参数是
String
-s的
列表,因此FreeMarker尝试将值转换为字符串,但只能使用字符串、日期或数字值。因此,只需将其更改为
TemplateMethodModelEx
,然后
args
将成为
TemplateModel
-s的
列表,从而接受所有类型的值。

可能是
href
TemplateMethodModel
而不是
TemplateMethodModelEx
TemplateMethodModel.exec(args)
中的
args
参数是
String
-s的
列表,因此FreeMarker尝试将值转换为字符串,但只能使用字符串、日期或数字值。因此,只需将其更改为
TemplateMethodModelEx
,然后
args
将成为
TemplateModel
-s的
列表,从而接受所有类型的值。

方法的定义是什么样的?我已经在问题中添加了href方法。
href
方法的定义是什么看起来像?我已经在问题中添加了href方法。
public TemplateModel exec(List args) throws TemplateModelException {
    return new SimpleScalar("");
}