2016-05-27 22 views
1

Ich habe ein Sling Servlet mit resourceType = "dies/ist/a/test".Wie kann ich die Seite von siteadmin in AEM ausblenden?

@SlingServlet(methods = { "GET" }) 
@Properties({ @Property(name = "service.pid", value = "com.test.TestServlet", propertyPrivate = false), 
    @Property(name = "sling.servlet.resourceTypes", value = {"this/is/a/test"})}) 
public class TestServlet extends SlingSafeMethodsServlet { 

Ich habe eine MSM-Struktur mit Marke und Gebietsschema in Blueprint.

SampleBlueprint 
     Organization One 
      en_US 
       Home Page 
       Contact US 
       bin 
        test-servlet 

    SampleLiveCopies 
     Organization One 
      America 
       en_US 
       Home Page 
       Contact US 
       bin 
        test-servlet 
       fr_US 
       Home Page 
       Contact US 
       bin 
        test-servlet 
      Canada 
       en_CA 
       Home Page 
       Contact US 
       bin 
        test-servlet 

Das Test-Servlet hat sling: resourceType = "dies/ist/a/test".

Im Servlet verwende ich den Pfad, um die Antwort zu bestimmen. Beispiel: Wenn Pfad ist/Inhalt/SampleLiveCopies/OrganizationOne/America/de_US/bin/test-Servlet würde ich Daten, die Amerika in englischer Sprache verwandt ist zurückgeben.

Aber da die Seite "bin/test-servlet" in siteadmin sichtbar ist, hat der Autor das Steuerelement, um es zu bearbeiten.

Daher möchte ich die Seite bin/test-servlet in siteadmin ausblenden.

+0

Müssen Sie Seite für Servlet unter Siteadmin erstellen? Das Servlet kann [Pfadinfo abrufen] (https://sling.apache.org/apidocs/sling5/org/apache/sling/api/SlingHttpServletRequest.html#getRequestPathInfo()). Würden Sie das Servlet über den AJAX-Anruf von der Seite "Home Page" unter "en_US" erreichen? Oder der Anwendungsfall ist anders? –

+0

Ja. Von der Homepage würde ich Servlet durch AJAX-Anruf anfordern. Ich habe einen Servlet-Filter, der Land, Sprache von der URL erkennt. Dies bietet die Fähigkeit des Servlets, Daten bereitzustellen. Das Problem bei der Verwendung von Pfad für Servlet besteht darin, dass die Antwort im Dispatcher nicht eingelöst wird und die Leistung beeinträchtigt wird. – Dileepa

Antwort

3

Wenn Sie Seite ausblenden möchten - Sie verwenden Eigenschaft versteckt mit Wert wahr auf jcr: Inhalt der Seite. Ich wette, es gäbe einen ähnlichen Ansatz. Versuche es.

+0

Perfekt, funktioniert. Vielen Dank. – Dileepa

+0

Leider funktioniert das nicht in der TouchUI – Sutty1000