首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在sling servlet中调用除doGet或doPost之外的不同方法

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

Stack Overflow用户
提问于 2015-11-06 17:36:05
回答 1查看 2K关注 0票数 0

我是Sling框架的新手。有没有办法我们可以调用不同的方法。

对于前一页,我有添加,删除,编辑按钮,所以除了创建三个文件,我可以创建三个方法(添加,删除,更新)在同一文件。

请提个建议。

我尝试通过更改方法名

代码语言:javascript
复制
@Property(name = "sling.servlet.methods", value = { "getData" })

但是它不起作用。

代码语言:javascript
复制
@Service
@Properties({
    @Property(name = "sling.servlet.paths", value = { "getData" }),
    @Property(name = "sling.servlet.methods", value = { "GET" })
     })
public class getData extends SlingAllMethodsServlet {
EN

回答 1

Stack Overflow用户

发布于 2015-11-08 01:14:27

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

在您的示例中,如果希望servlet同时支持获取数据和创建新数据,则需要允许方法GETPOST,并实现doGetdoPost方法。

代码语言:javascript
复制
@Service
@Properties( {
    @Property(name = "sling.servlet.paths", value = { "/getData" } ),
    @Property(name = "sling.servlet.metods", 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动词,并在servlet中实现doDeletedoPut方法。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33563614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档