创建servlet以处理提交的数据

在IntelliJ中启动您的aem-banking项目。
创建一个简单的servlet以将提交的数据输出到日志文件。确保代码位于核心项目中,如下面的屏幕快照所示
create-servlet

package com.aem.bankingapplication.core.servlets;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
import javax.servlet.Servlet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.osgi.service.component.annotations.Component;
@Component(service = { Servlet.class}, property = {"sling.servlet.methods=post","sling.servlet.paths=/bin/formstutorial"})
public class HandleFormSubmissison extends SlingAllMethodsServlet {
    private static final Logger log = LoggerFactory.getLogger(HandleFormSubmissison.class);
    protected void doPost(SlingHttpServletRequest request,SlingHttpServletResponse response) {
        log.debug("Inside my formstutorial servlet");
        log.debug("The form data I got was "+request.getParameter("jcr:data"));
    }
}

创建自定义提交处理程序

apps/bankingapplication文件夹中创建自定义提交操作的方式与在早期版本的AEM Forms中创建的方式相同。 在本教程中,我在CRX存储库的apps/bankingapplication节点下创建了一个名为SubmitToAEMServlet的文件夹。

post.request.jsp中的以下代码只是将POST转发到挂载在/bin/formstutorial上的servlet。 这与上一步中创建的servlet相同

com.adobe.aemds.guide.utils.GuideSubmitUtils.setForwardPath(slingRequest,"/bin/formstutorial",null,null);

在IntelliJ的AEM项目中,右键单击apps/bankingapplication文件夹并选择“新建” | 在“新建包”对话框中,将apps.banking应用程序打包并键入SubmitToAEMServlet。 右键单击SubmitToAEMServlet节点并选择repo | 获取用于将AEM项目与AEM服务器存储库同步的命令。

配置自适应表单

您现在可以将任何自适应表单配置为提交到此自定义提交处理程序,称为​ 提交到AEM Servlet

后续步骤

使用资源类型注册servlet

recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69