gpt4 book ai didi

jsp - CQ5/Sling - 处理 POST 请求

转载 作者:行者123 更新时间:2023-12-04 19:35:39 25 4
gpt4 key购买 nike

我是 CQ5 的新手,我需要用我的组件处理 HTTP POST 请求。我有以下目录结构

/apps/TEST_project/components/myComponent/myComponent.jsp
/apps/TEST_project/components/myComponent/myComponent.POST.jsp

以及 myComponent.jsp 中的这个表单

<form action="<%resource.getPath();%>myPage.html" method="POST" enctype="multipart/form-data">
Name <input type="text" name="name" /><br />
E-mail <input type="text" name="email" /><br />
File <input type="file" name="file" /><br />
<input type="submit" id="Upload" value="Upload" title="Upload" />
</form>

但是每当我提交表单时,我只会得到告诉我这一点的页面

Content modified /content/TEST_project/myPage

Status
200
Message
OK
Location /content/TEST_project/myPage
Parent Location /content/TEST_project
Path
/content/TEST_project/myPage
Referer http://localhost:4502/content/TEST_project/myPage
ChangeLog
<pre></pre>

而不是 myComponent.POST.jsp 脚本。

昨天我花了几个小时试图完成这项工作但没有任何结果...感谢您的帮助

最佳答案

通过添加 myPage.html在您的操作结束时,您的表单的操作变为 /content/TEST_project/myPage.html

/content/TEST_project/myPage未解析为资源,默认情况下 Sling 将在该位置创建一个资源(状态为 201 Created)。如果您再次尝试发布,它现在将针对这个新节点进行解析,但由于该节点没有资源类型,它现在使用默认的 Post servlet 来修改该资源。

正如其他人所说,要让您的 JSP 处理表单提交,您需要将表单操作设为 <%= resource.getPath() %>.html。或 <%= currentNode.getPath() %>.html (“.html”扩展名是可选的,但只需使用上面的语法即可)。

这意味着表单提交仍将解析为 /apps/TEST_project/components/myComponent 的资源类型.从那里,您的文件名 myComponent.POST.jsp应该努力解决 POST 请求并处理表单提交。

关于jsp - CQ5/Sling - 处理 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17206877/

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