gpt4 book ai didi

java - 使用 sling servlet 处理表单数据

转载 作者:行者123 更新时间:2023-12-01 14:36:54 25 4
gpt4 key购买 nike

我正在尝试创建一个使用 sling servlet 处理的简单 html 表单。这是一个非常带有几个输入字段的基本形式,我的 java 类非常简单。我想做的就是将表单中的值记录在我的错误日志中。相反,什么也没有发生。我一定是错过了一些小事或者只是盲目的。

表单 html

<form name="" method="POST" action="/apps/form">
<input id="firstName" type="text" name="firstName" />
<input id="phoneNumber" type="text" name="phoneNumber" />
<input type="submit" name="submit" value="submit">
</form>

Java 类

@Component(immediate=true, metatype=false, label="FORM SERVLET")

@Properties({
@Property(name="sling.servlet.methods", value={"POST"}),
@Property(name="sling.servlet.paths", value={"/apps/form"}),
@Property(name="sling.servlet.selectors", value={"form"}),
@Property(name="sling.servlet.extensions", value={"html"})
})

public class FormServlet extends SlingSafeMethodsServlet {

private final Logger log = LoggerFactory.getLogger(this.getClass().getName());

protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException
{

response.setContentType("text/html");
PrintWriter out = response.getWriter();

String name = request.getParameter("firstName");
String phone = request.getParameter("phoneNumber");

out.println(name);
out.println(phone);

log.error("the chat component is loaded first name" + name + phone);

}

}

最佳答案

您可以将 servlet 注册到特定路径,在这种情况下,扩展名和选择器是无关的。通常你在/bin 目录下注册路径

如果/apps/form 存在,您应该注册您的 servlet 以响应该资源类型而不是路径。例如:

@SlingServlet(
description = "processes a form",
resourceTypes = { "yourapp/component" },
selectors = { "form" },
extensions = { "html" },
methods = { "POST" })
public class FormServlet extends SlingAllMethodsServlet { ... }

关于java - 使用 sling servlet 处理表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16408520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com