我目前正在尝试在后台实现文件导出,以便用户可以在文件下载时执行一些操作。
我使用了 apache isisCommandExexuteIn:Background
动作属性。但是,我收到一个错误“不是(可编码的)值”,这是ScalarValueRenderer类引发的错误。
这就是我的方法的样子:
@Action(semantics = SemanticsOf.SAFE,
command = CommandReification.ENABLED)
commandExecuteIn = CommandExecuteIn.BACKGROUND)
public Blob exportViewAsPdf() {
final Contact contact = this;
final String filename = this.businessName + " Contact Details";
final Map<String, Object> parameters = new HashMap<>();
parameters.put("contact", contact);
final String template = templateLoader.buildFromTemplate(Contact.class, "ContactViewTemplate", parameters);
return pdfExporter.exportAsPdf(filename, template);
}
我认为该错误与实际上并未调用操作但返回持久后台命令的命令有关。
这个实现实际上适用于没有返回类型的方法。我错过了什么?或者有没有办法实现后台命令并获得预期的结果?