How to read checkbox values from the HTML form data in AEM | AEM Servlet

How to read checkbox values from the HTML form data in AEM | AEM Servlet


Group checkbox values from the HTML form data in to AEM Servlet

countriesForm.html


<html
	<body>
	<form method="Post" action="/bin/countryForm">
		<input type="checkbox" name="country" value="India" />India
		<input type="checkbox" name="country"  value="USA" />USA
		<input type="checkbox" name="country" value="Japan" />Japan
		<input type="submit" value="Select Country" />
	</form>
	</body>
</html>        

ServletFormDataCheckbox.class

package com.kkc.core.servlets

import com.day.cq.commons.jcr.JcrConstants;
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.ServletResolverConstants;
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
import org.apache.sling.servlets.annotations.SlingServletResourceTypes;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.propertytypes.ServiceDescription;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.servlet.Servlet;
import javax.servlet.ServletException;
import java.io.IOException;

import static jdk.nashorn.internal.runtime.regexp.joni.Config.log;

@Component(service = Servlet.class, immediate = true, property = { "description=Form Data Checkbox Servlet",
        ServletResolverConstants.SLING_SERVLET_METHODS + "="
                + HttpConstants.METHOD_POST,
        ServletResolverConstants.SLING_SERVLET_PATHS + "=/bin/countryForm" })
public class ServletFormDataCheckbox extends SlingAllMethodsServlet {

    private static final long serialVersionUID = 1L;
    private static Logger log = LoggerFactory.getLogger(ServletFormDataCheckbox.class);

    @Override
    protected void doPost(final SlingHttpServletRequest req,
                         final SlingHttpServletResponse resp) throws ServletException, IOException {
        final Resource resource = req.getResource();
        resp.setContentType("text/plain");
        resp.getWriter().write("Title = " + resource.getValueMap().get(JcrConstants.JCR_TITLE));

        String[] values = req.getParameterValues("country");

        log.info("Selected Countries are :");

        for( String value : values )
        {
            log.info(" country name "+ value);
        }
    }
}        

To view or add a comment, sign in

More articles by Keshav Chaurasiya

Insights from the community

Others also viewed

Explore topics