At productlist.jsp modify  to set the right value as per your need.
 rootPath = currentNode.getPath();
ProductList is the component and if I hadcode the value of the rootPath then for each productList it will use the same location. I may have multiple instance of ProductList and in that case I need to keep the root path different.
If i add the productList component in sidekick, and dragdrop then it automatically adds the rootPath like productlist_1 and for next one productlist_2 and so on. But when I add it usingcq:include in JSP it doesn't assigns it.
I wanted to keep it dynamic and not the fixed. One way is to retirve the JCR noed and set the property. is there any direct property like cq:include ?
also you told to modify the productlist.jsp, this JSP feel is jsut to display the content, and not for storing. So if I change here it doesn't make any change.
Can I also add the workflow for approving each product?
I am able to solve the above issue by below code:
Session session = currentNode.getSession();
<cq:include path="productList_1" resourceType="mySite/components/productlist"/>