首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在aem 6.3中使用sling模型获取页面属性?

在AEM 6.3中,可以使用Sling模型来获取页面属性。Sling模型是AEM中的一种Java类,用于将JCR节点映射到Java对象上。以下是在AEM 6.3中使用Sling模型获取页面属性的步骤:

  1. 创建一个Java类,该类将作为Sling模型。可以使用@Model注解来标识该类为Sling模型,并使用@Inject注解来注入需要的依赖项。
代码语言:java
复制
package com.example.models;

import javax.inject.Inject;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.models.annotations.DefaultInjectionStrategy;
import org.apache.sling.models.annotations.Model;

@Model(adaptables = Resource.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
public class MyModel {
    @Inject
    private String pageTitle;

    public String getPageTitle() {
        return pageTitle;
    }
}
  1. 在AEM中创建一个cq:Page节点,并在该节点下创建一个cq:PageContent节点。在cq:PageContent节点下添加一个新的属性pageTitle,并设置其值为页面的标题。
  2. 在需要获取页面属性的地方,可以使用Sling模型注入的方式来获取页面属性。
代码语言:java
复制
package com.example.servlets;

import javax.servlet.Servlet;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.servlets.HttpConstants;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
import org.apache.sling.models.factory.ModelFactory;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;

@Component(service = Servlet.class, property = { "sling.servlet.methods=" + HttpConstants.METHOD_GET,
        "sling.servlet.paths=" + "/bin/my-servlet" })
public class MyServlet extends SlingSafeMethodsServlet {
    @Reference
    private ModelFactory modelFactory;

    @Override
    protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) {
        Resource resource = request.getResource();
        MyModel myModel = modelFactory.createModel(resource, MyModel.class);
        String pageTitle = myModel.getPageTitle();
        // 使用获取到的页面属性进行后续操作
    }
}

在上述示例中,MyModel类是一个Sling模型,它将pageTitle属性注入到Java对象中。在MyServlet中,通过modelFactory.createModel()方法来创建MyModel实例,并从中获取页面属性。

这是在AEM 6.3中使用Sling模型获取页面属性的基本步骤。关于AEM和Sling模型的更多详细信息,可以参考腾讯云的相关文档和产品介绍:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券