来自组件的 AEM 中的 CustomAction 类型
CustomAction Types in AEM From Component
我正在使用表单组件创建表单。我有电子邮件字段和用户名字段。我想在单击提交按钮时向给定的电子邮件 ID 发送一封电子邮件。在表单中,我 select 我的自定义操作类型调用负责发送电子邮件的 servlet。我的自定义操作类型只有 forward.jsp 作为脚本文件:
<%@page import="com.day.cq.wcm.foundation.forms.FormsConstants"%><sling:defineObjects/><%
System.out.println(":::::::::::::::"+resource.getPath());
FormsHelper.setForwardPath(slingRequest, resource.getPath() + ".custommail.html");
FormsHelper.setRedirectToReferrer(request, true);
%>
当我点击提交按钮时,我可以看到我的 forward.jsp 被调用,因为我可以在 stdout.log 中看到 resourcePath(content/geometrixx/en/toolbar/newsletter/jcr:content/par/start)。但是 servlet 没有得到调用,以防我点击 localhost:4502/content/geometrixx/en/toolbar/newsletter/jcr:content/par/start.custommail.html
servlet 被调用,不知道为什么它不使用 FormsHelper 调用。
以及我们如何将参数(即电子邮件字段)传递给 servlet。
任何想法。
谢谢
查看此博客http://labs.sixdimensions.com/blog/2012-08-20/sending-email-adobe-cq-api/ 了解 AEM 中的电子邮件功能。
您需要将一个 servlet 注册到您的表单启动组件和正确的选择器。如果您使用的是基础表格,这将是这样的:
@SlingServlet(resoruceTypes = "foundation/components/form/start", methods = "POST", selectors = "custommail", extenstions = "html", generateComponent = false)
public class CustomMailServlet extends SlingAllMethodsServlet {
@Override
protected void doPost(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException {
//your code here
}
}
我正在使用表单组件创建表单。我有电子邮件字段和用户名字段。我想在单击提交按钮时向给定的电子邮件 ID 发送一封电子邮件。在表单中,我 select 我的自定义操作类型调用负责发送电子邮件的 servlet。我的自定义操作类型只有 forward.jsp 作为脚本文件:
<%@page import="com.day.cq.wcm.foundation.forms.FormsConstants"%><sling:defineObjects/><%
System.out.println(":::::::::::::::"+resource.getPath());
FormsHelper.setForwardPath(slingRequest, resource.getPath() + ".custommail.html");
FormsHelper.setRedirectToReferrer(request, true);
%>
当我点击提交按钮时,我可以看到我的 forward.jsp 被调用,因为我可以在 stdout.log 中看到 resourcePath(content/geometrixx/en/toolbar/newsletter/jcr:content/par/start)。但是 servlet 没有得到调用,以防我点击 localhost:4502/content/geometrixx/en/toolbar/newsletter/jcr:content/par/start.custommail.html
servlet 被调用,不知道为什么它不使用 FormsHelper 调用。
以及我们如何将参数(即电子邮件字段)传递给 servlet。
任何想法。 谢谢
查看此博客http://labs.sixdimensions.com/blog/2012-08-20/sending-email-adobe-cq-api/ 了解 AEM 中的电子邮件功能。
您需要将一个 servlet 注册到您的表单启动组件和正确的选择器。如果您使用的是基础表格,这将是这样的:
@SlingServlet(resoruceTypes = "foundation/components/form/start", methods = "POST", selectors = "custommail", extenstions = "html", generateComponent = false)
public class CustomMailServlet extends SlingAllMethodsServlet {
@Override
protected void doPost(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException {
//your code here
}
}