0
AJAXを使用して呼び出されているSlingサーブレットを作成しました。ここでは、サーブレットのコードは次のとおりです。AEM 6.3:resourceTypeで登録されたSling Servlet
package com.aem.sites.servlets;
import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Modified;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.metatype.annotations.Designate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.aem.sites.interfaces.SearchConfiguration;
@Component(
immediate = true,
service = Servlet.class,
configurationPid = "com.aem.sites.servlets.SearchServlet",
property = {
"sling.servlet.methods=get",
"sling.servlet.selectors=search",
"sling.servlet.resourceTypes=aemsite-project/components/structure/page",
"sling.servlet.extensions=html"
}
)
@Designate(ocd=SearchConfiguration.class)
public class SearchServlet extends SlingSafeMethodsServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
/** The Constant logger. */
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Override
protected void doGet(final SlingHttpServletRequest req,
final SlingHttpServletResponse resp) throws ServletException, IOException {
logger.info("********************************inside search servlet:::do get*****************************************");
}
@Activate
@Modified
protected void Activate(SearchConfiguration config) {
logger.info("********************************inside search servlet*****************************************");
}
}
package com.aem.sites.interfaces;
import org.osgi.service.metatype.annotations.AttributeDefinition;
import org.osgi.service.metatype.annotations.ObjectClassDefinition;
@ObjectClassDefinition(name="Search Configuration")
public @interface SearchConfiguration {
@AttributeDefinition(
name = "Enable",
description = "Sample boolean property"
)
boolean enabled() default false;
}
これは、JSファイルです:
$('#search-input input').keydown(function(event) {
var keyCode = (event.keyCode ? event.keyCode :event.which);
if(keyCode == 13) {
console.log('inside key event');
var searchterm = $("#search-input input").val();
console.log('value of search term is '+searchterm);
//$("searchForm").submit();
$.ajax({
type: "GET",
url: "/content/aemsite/en/results.search.html?q="+searchterm,
success: function(data) {
}
});
}
});
何らかの理由で、サーブレットが呼び出されていません。私はこれらの例に従った:
http://www.aemcq5tutorials.com/tutorials/sling-servlet-in-aem/
私は私がここで行方不明ですかわからないです。