Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.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_Directive - Fatal编程技术网

Java Freemarker中的嵌套指令参数

Java Freemarker中的嵌套指令参数,java,freemarker,directive,Java,Freemarker,Directive,我在一个Java项目中使用Freemarker。 我已经定义了一个自定义指令,如@mycustomdirective 此自定义指令是否支持其他指令作为参数 i、 e: 感谢您的建议。它不受支持;只能在表达式中调用函数和方法(无论是参数值还是其他) 这实际上有一个原因:指令用于输出标记,函数/方法用于生成纯文本(或数字、布尔值等)。因此,当您插入带有${exp}的表达式时,它会自动转义(通过#escapeATM…因此它是“半自动的”),而指令调用则不是,因此区别很重要。参数值是表达式,因此它们是

我在一个Java项目中使用Freemarker。 我已经定义了一个自定义指令,如@mycustomdirective

此自定义指令是否支持其他指令作为参数

i、 e:


感谢您的建议。

它不受支持;只能在表达式中调用函数和方法(无论是参数值还是其他)

这实际上有一个原因:指令用于输出标记,函数/方法用于生成纯文本(或数字、布尔值等)。因此,当您插入带有
${exp}
的表达式时,它会自动转义(通过
#escape
ATM…因此它是“半自动的”),而指令调用则不是,因此区别很重要。参数值是表达式,因此它们是非标记的,当然,虽然可以将非标记插入到标记中(通过转义),但从根本上说,不可能将非标记插入到标记中

但如果您真的想在表达式中传递指令输出,有一个hack:

<#assign captured><@myotherdirective /></#assign>
<@mydirective parameter=captured />