>我有一个问题。 我需要从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
并将你的自定义逻辑放在那里。
当然,你仍然可以争辩说有两个控制器是糟糕的风格。 :)