我是Sling框架的新手。有什么方法可以调用不同的方法。
对于ex - on Page我添加,删除,编辑按钮除了创建三个文件之外,我可以在同一个文件中创建三个方法(添加,删除,更新)。
请建议。
我试过更改方法名称
@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 {
答案 0 :(得分:2)
SlingAllMethodsServlet
将支持任何有效的HTTP谓词作为方法,并且响应请求将调用相应的do
方法。例如,在响应PUT
请求时,将调用doPut
方法。
在您的情况下,如果您希望您的servlet同时支持获取数据和创建新数据,您可能希望允许方法GET
和POST
并实现doGet
和{{1方法。
doPost
要添加删除和编辑支持,您只需支持@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) { ... }
}
和DELETE
HTTP谓词以及在servlet中实现PUT
和doDelete
方法。
与切线相关的注释 - 通过使用@SlingServlet
annotation代替@Service和@Component注释,您可以稍微缩短代码并获得更好的自动完成和文档支持。