Hi,
you just only need to create your HTML without using jsp.
In your components you could insert an HTML like the following:
<form id="myform">
${properties.firstname}:<br>
<input type="text" name="firstname" value="">
<br>
${properties.lastname}:<br>
<input type="text" name="lastname" value="">
<br><br>
<input class="action" type="submit" value="${properties.submit}">
</form>
Inside your clientlibs you could use ajax in order to get data and then send this data to your servlet:
function attachEvent(){
$(".action").click(function(e) {
e.preventDefault();
sendDataToAEM();
});
}
function sendDataToAEM() {
var dataForm = $("#myform").serializeArray();
$.post("/content/we-retail.aemtestservice.html", dataForm);
}
$(document).ready(function() {
attachEvent();
});
And in java you need to create your servlet that get your data and then call your service:
@SlingServlet(resourceTypes = {"cq:Page"}, methods = {"GET,POST"},
selectors = {"aemtestservice"},
extensions = {"html"})
public class AEMTestServiceServlet extends SlingAllMethodsServlet {
private static final Logger LOGGER = LoggerFactory.getLogger(AEMTestServiceServlet.class);
@Reference
private HelloService helloService;
protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {
String data = request.getParameter("firstname");
//...
helloService.mymethod();
//...
}
Let us know.
Thanks,
Antonio