0

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

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

,但是如何构造新的 WebScriptRequest 对象呢?我需要这样做来重写请求路径。这对我来说真的是个问题。谢谢你。

4

2 回答 2

3

通常,您应该使用WebScriptRequestURLImpl。没有任何其他细节,很难深入。

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

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

于 2012-04-11T16:31:00.190 回答
0

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

但事实上,Alfresco 开箱即用地支持同时执行脚本控制器和 java 方法——没有丑陋的 hack,也无需通过整个 HTTP 层两次。

你可以这样做:

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

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

当然,您仍然可以争辩说拥有两个控制器是不好的风格。:)

于 2012-04-14T08:26:37.667 回答