Jquery Post для сервлетов - PullRequest
6 голосов
/ 24 марта 2011

У меня есть следующий код на стороне клиента:

      <script src="http://code.jquery.com/jquery-1.5.js"></script>
   <script>
    $(document).ready(function() {
   $("a").click(function() {
   //var orderId =  $("#orderId").val();
   $.post("test", { orderId : "John"},
   function(data) {
     alert("Data Loaded: " + data);
   });
   });
 });
    </script>

Серверная сторона:

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        PrintWriter writer =  response.getWriter();
        try{
           String orderId = request.getAttribute("orderId").toString();
           writer.write(orderId);
           writer.close();
           }
       catch(Exception ex)
      {
      ex.getStackTrace();
      }
    }

мой

request.getAttribute("orderId")

равно нулю, и я получаю исключение нулевой ссылки. Что я делаю неправильно?

Ответы [ 2 ]

12 голосов
/ 24 марта 2011

Я думаю, что вы хотите request.getParameter("orderId"). Атрибуты предназначены только для использования на стороне сервера при обработке запроса. Параметры содержат данные запроса со стороны клиента.

2 голосов
/ 24 марта 2011

Вы должны использовать метод getParameter вместо getAttribute.

request.getParameter("orderId")

getParameter () извлечет значение, которое отправил клиент. Где, как вам следует использовать getAttribute () при отправке запроса на другой ресурс (на стороне сервера).

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