Идентификатор продукта передается из ajax в сервлет, но значение равно нулю - PullRequest
0 голосов
/ 10 июня 2018

В моем сервлете я беру продукт, выбранный пользователем, и передаю идентификатор продукта сервлету через AJAX

@WebServlet("/productSelected")
public class ProductCompareAJAX extends HttpServlet {

    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String productCode=request.getParameter("productCode");
    System.out.print("Product Code"+productCode);
    Set <String>prodCodeList=new HashSet<String>();
    prodCodeList.add(productCode);
    System.out.println(prodCodeList.toString());
    request.getSession().setAttribute("sessionProductCode", prodCodeList);
    System.out.println("Value in session *************"+request.getSession().getAttribute("sessionProductCode").toString());
    //String sessionProdId=request.getSession().getAttribute("sessionProductCode").toString();
    String nextJSP = "jsp/index.jsp";
    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
    dispatcher.forward(request,response);
    }

Этот вызов ajax запускается, когда пользователь выбирает продукт из списка

function addToCompare() {
    console.log("Product ID: "+ this.id);
    console.log("Product ID: "+ this.dataset.productId);
    var productCode;
   if($("input[id="+this.id+"]").is(':checked'))
       {

       //ajax call
       productCode=this.dataset.productId;
       alert(productCode);
       $.ajax({
           type: 'POST',
           url: 'productSelected',
           contentType: 'application/x-www-form-urlencoded; charset=UTF-8;',
           data: {productCode:"productCode"},
           cache: false,
           success: function (data) {
               alert("Success");
           }
         });

       // ajax call ends

       }
   else
       {
       alert("Not selected");
       }
}

$(function() {
    $('.productCheckbox').click(addToCompare);
    console.log("Document is ready");


});

//Output
Product Codenull[null]
Value in session *************[null]

Пожалуйста, дайте мне знать, почему я получаю значения как null внутри моего сервлета.

1 Ответ

0 голосов
/ 10 июня 2018

В опции данных ajax вы написали как

data: {productCode:"productCode"},

, поэтому значение productCode всегда будет productCode .

Измените его наниже:

data: {productCode:productCode},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...