我有问题。我需要从Java webscript执行js webscript。我知道,怎么做:
req.getRuntime().getContainer().getRegistry().getWebScript("com/home/testJs/testJs.get").execute(req, res)
,但是如何构造新的WebScriptRequest对象?我需要为重写请求路径执行此操作。这对我来说真的很麻烦。 谢谢。
答案 0 :(得分:3)
通常,您应该使用WebScriptRequestURLImpl。没有任何其他细节,很难更深入。
也就是说,通过另一个HTTP调用来解决你的问题通常是一个坏主意,它基本上表明模块化不良或缺乏代码重用。
我宁愿将JS和Java Web脚本流程中常见的代码片段移动到Action,您可以从两个位置调用,而无需重新打包输入参数,或者更糟糕的发送他们通过HTTP。
答案 1 :(得分:0)
当然skuro是正确的,说两次通过HTTP层是一个坏主意。
但事实上,执行两者,Alfresco支持脚本控制器和java方法开箱即用 - 没有丑陋的黑客攻击,也没有通过整个HTTP层两次。
你可以这样做:
将您的脚本代码放在相应的.js文件中。
确保您的Java类是DeclarativeWebScript
的子类,覆盖executeImpl
并将自定义逻辑放在那里。
当然,你仍然可以争辩说有两个控制器是不好的风格。 :)