2015-04-08 2 views
0

В моем JSP (index.jsp) я представляю форму, которая передает параметры другому JSP (action.jsp) с использованием JSON.Получение значения JSON в JSP

<form id="form"> 
<input type="text" name="name"/> 
<input type="button" id="btn" value="OK"/> 
</form> 

А вот Jquery кодекс index.jsp:

$(document).ready(function(){ 
$("#btn").click(function(){ 
    var name = $("input[name=name]").val(); 
    $.ajax({ 
        cache:false, 
        url:"action.jsp", 
        data:{name:name}, 
        contentType:"application/json; charset=utf-8", 
        dataType:"json", 
        success:function (msg) { 
         alert("SUCCESS"); 
         // here I want a String that is 
         // generated(generatedString) in action.jsp. 
         }); 
         } 
        }, 
        error:function() { 
         alert("Unable to add."); 
        } 
     }); 

}); 
}); 

Мой код action.jsp:

<% 
    String name = request.getParameter("name"); 
    String generatedString = "E5142"; 
    response.setContentType("application/json"); 
    out.print(generatedString); 
%> 

Форма представляется успешно action.jsp, но не может получить значение «generatedString» в index.jsp взамен.

UPDATED: index.jsp всегда показывает ошибку в предупреждении: «Невозможно добавить». Пробовал, что говорится в комментариях, но не придумал сообщение об успешном завершении.

+0

Я не знаю, JSP, но это выглядит как вы просто определяя переменные не печатая их? Вам нужно распечатать строку в json. – mindore

+0

В action.jsp попробуйте добавить еще одну строку 'out.print (generatedString)'. Затем внутри вашего обратного вызова 'success' замените' alert («SUCCESS») 'на' alert (msg) ' – pmahomme

+0

См. Этот [аналогичный вопрос] (http://stackoverflow.com/questions/26279339/ajax-post-cannot- send-data-to-servelet/26280336 # 26280336) – Tap

ответ

0

Если вы хотите отправить ответ со страницы jsp, вы можете использовать out.println().

<% 
    String jsonString= request.getParameter("name"); 
    String generatedString = "E5142"; 
    out.println(generatedString); 
%> 

В вашем jquery вы можете использовать alert(msg);

Но ваша проблема связана с URL-адресом action.jsp url или файлом jsp. Потому что вы получаете ошибку в jquery send action! В google chrome откройте консоль (нажмите F12). Отправьте свое действие, и вы увидите ошибку на консоли. Если вы получите сообщение «« это ошибка пути. Если вы получите «500 ошибка« это ошибка файла jsp. Управляйте своим системным журналом тем, что происходит.

Вы можете попробовать это:

var name = $("input[name=name]").val(); 
var url = "action.jsp"; 
$.post(url,{name:name}) 
    .done(function(data){ 
     alert(data); 
    }) 
    .fail(function(){ 
     console.log('fail'); 
    }); 
+0

В консоли нет ошибки ... По-прежнему возникает ошибка. – Sunny

+0

Я добавил сообщение образец. Можете попробовать? – hurricane

+0

Отсутствие надежды приятеля, все еще ошибка часть бьет. :( – Sunny

Смежные вопросы