如何直接通过AJAX调用FormHandler

Gop*_*pal 0 atg

我们可以通过AJAX调用ATG FormHandler吗?我有希望吗?

Jan*_*Jan 6

一般来说:是:-)

但可能性有限或需要一些奇怪的黑客来让它们运行,所以它可能取决于你想要做什么.

有几种不同的方法:

您不能直接将请求发送到表单处理程序,就像您可以在Struts或Spring MVC等框架中使用servlet或控制器一样,但是您总是必须在JSP页面中创建一个表单(使用DSP taglib创建),然后提交该表格.这意味着如果JSP页面中没有相应的表单,则无法触发表单处理程序.但是如果您在页面中有该表单,则可以通过AJAX请求提交.然后,您的AJAX请求将触发表单处理程序并以与正常表单提交相同的方式返回结果.这种方法是可行的并且通常有效.如果您不希望在页面中显示您的AJAX请求表单,则可以使用CSS隐藏它.

另一种方法是使用ATG的REST Web服务模块,它允许您将任何组件公开为RESTful Web服务.这也允许您调用表单处理程序,而无需为它们提供表单或首先呈现JSP页面.标题为"ATG Web服务和集成框架指南"(来自Oracle的ATG文档)的文档有一整章关于如何将表单处理程序作为REST Web服务调用.

或者您可以编写一个小的自定义servlet来接收您的AJAX请求,然后使用接收到的数据来调用表单处理程序,就像查找和调用任何其他Nucleus组件一样......