gpt4 book ai didi

java - 在 sling servlet 中调用除 doGet 或 doPost 之外的不同方法

转载 作者:行者123 更新时间:2023-12-02 04:13:28 25 4
gpt4 key购买 nike

我是 Sling 框架的新手。有什么办法可以调用不同的方法吗?

例如,在页面上我有添加、删除、编辑按钮,因此除了创建三个文件之外,我还可以在同一文件中创建三种方法(添加、删除、更新)。

请提出建议。

我尝试更改方法名称

@Property(name = "sling.servlet.methods", value = { "getData" })

但它不起作用

@Service
@Properties({
@Property(name = "sling.servlet.paths", value = { "getData" }),
@Property(name = "sling.servlet.methods", value = { "GET" })
})
public class getData extends SlingAllMethodsServlet {

最佳答案

SlingAllMethodsServlet 将支持任何有效的 HTTP 动词作为方法,并且响应请求时将调用适当的 do 方法。例如,为了响应 PUT 请求,将调用 doPut 方法。

在您的情况下,如果您希望 servlet 支持获取数据和创建新数据,您可能需要允许方法 GETPOST 并实现 doGetdoPost 方法。

@Service
@Properties( {
@Property(name = "sling.servlet.paths", value = { "/getData" } ),
@Property(name = "sling.servlet.methods", value = { "GET", "POST" } )
} )
public class DataServlet extends SlingAllMethodsServlet {

@Override
protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) { ... }

@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) { ... }

}

要添加删除和编辑支持,您只需要支持 DELETEPUT HTTP 动词以及实现 doDelete 和Servlet 中的 doPut 方法。

切线相关的注释 - 通过使用 @SlingServlet annotation代替 @Service 和 @Component 注释,您可以稍微缩短代码并获得更好的自动完成和文档支持。

关于java - 在 sling servlet 中调用除 doGet 或 doPost 之外的不同方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33563614/

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