가 SlingHttpServletRequest
(일반) "currentPage"
참조 포함 SlingBindings
의 인스턴스를 제공한다 (I 정적 필드를 WCMBindings.CURRENT_PAGE
사용하고 [:의 groupId : com.adobe.cq.sightly
, artifactId를 : cq-wcm-sightly-extension
버전 : 종속성 1.2.30
] 제 실시 예에서).
Optional
내 예제에서는 null
참조에 대한 검사를 너무 많이하지 않도록 Java 8 클래스를 사용하고 있습니다.
final Optional<Page> optional = Optional.ofNullable(request)
.map(req -> (SlingBindings) req.getAttribute(SlingBindings.class.getName()))
.map(b -> (Page) b.get(WCMBindings.CURRENT_PAGE));
단순화/명시 적으로 예를 들어 방금
@Model(adaptables={ SlingHttpServletRequest.class, })
public class Model {
public Model(@Nonnull final SlingHttpServletRequest request) {
final Page currentPage = getCurrentPageFromRequest(request);
// read properties.
}
Page getCurrentPageFromRequest(@Nonnull final SlingHttpServletRequest request) {
final SlingBindings bindings = (SlingBindings) request.getAttribute(SlingBindings.class.getName())
if (bindings == null) {
return null;
}
return (Page) bindings.get(WCMBindings.CURRENT_PAGE);
}
}
플로리안를 부를 것이다 당신의 슬링 모델에서
이 될 것입니다, 당신은 SlingHttpServletRequest을 의미합니까? –
추가 : 공개 Adobe Repos에서 "cq-wcm-sightly-extension, version : 1.2.30"을 찾을 수 없습니다. 공개적으로 사용 가능하지 않다고 생각합니까? –
예, 제가 그랬습니다. 'cq-wcm-sightly-extension'을 다른 버전의 AEM 인스턴스에 배포해야합니다. –