[英]Line break in JEXL String
我以标准方式在 Java 中使用 JEXL:
var script = new JexlBuilder().create().createScript(jexlScript);
var jexlContext = new MapContext();
var returnString = (String) script.execute(jexlContext));
假设 jexScript 看起来像:
var paramA = 'AAAA';
var paramB = 'BBBB';
var command = paramA + '\n' + paramB;
return command;
输出是:
AAAA\nBBBB
我的问题是:如何引入换行符以正确格式化此文本? 或任何其他方式在 Jexl 中创建字符串中获得新行分隔。
我是 Apache JEXL 的新手,但我找到了以下方法:
var paramA = 'AAAA';
var paramB = 'BBBB';
var command = `${paramA}
${paramB}`;
return command;
多行字符串格式中的文字换行符(用反引号分隔)将被保留。 使用变量替换来引入其他变量。
在您的 Java 代码中,填充上下文:
var jexlContext = new MapContext();
jexlContext.set("newline", "\n");
然后在你的脚本中使用它:
var paramA = 'AAAA';
var paramB = 'BBBB';
var command = paramA + newline + paramB;
return command;
这是一个在 3.2 版 ( JEXL-331 ) 之前存在但未记录的功能。 您可以在字符串文字中使用 Java 样式的 Unicode 转义。 \\n
的十六进制值为 0x0a,因此使用:
var command = paramA + '\u000a' + paramB;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.