从Alfresco中的Java webscript调用js webscript



>我有一个问题。 我需要从Java webscript执行js webscript。我知道,怎么做:

req.getRuntime().getContainer().getRegistry().getWebScript("com/home/testJs/testJs.get").execute(req, res)

,但是如何构造新的WebScriptRequest对象呢?我需要为重写请求路径执行此操作。这对我来说真的是一个问题。谢谢。

一般来说,你应该使用 WebScriptRequestURLImpl。没有任何其他细节,很难更深入。

也就是说,通过另一个HTTP调用来解决问题通常是一个坏主意,这基本上表明模块化不佳或缺乏代码重用。

我宁愿将 JS 和 Java Web 脚本流中常见的代码段移动为操作,您可以从两个位置调用它,而无需重新打包输入参数,或者更糟的是通过 HTTP 发送它们。

当然,

skuro 是正确的,说两次通过 HTTP 层是一个坏主意。

但事实上,执行两者,脚本控制器和Java方法都是由Alfresco开箱即用的 - 没有丑陋的黑客,也没有两次传递整个HTTP层。

您可以这样做:

将脚本代码放在相应的.js文件中。

确保你的 Java 类是 DeclarativeWebScript 的子类,覆盖executeImpl并将你的自定义逻辑放在那里。

当然,你仍然可以争辩说有两个控制器是糟糕的风格。 :)

最新更新