在JSP中获取JSON值

时间:2015-04-08 20:15:50

标签: jquery json jsp

在我的JSP(index.jsp)中,我提交了一个使用JSON将Parameters传递给另一个JSP(action.jsp)的表单。

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

这是index.jsp的Jquery代码:

$(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,但无法在index.jsp中获取值“generatedString”。

更新:index.jsp始终在警告中显示错误:“无法添加”。 尝试在评论中说了什么,但没有提出成功的消息。

1 个答案:

答案 0 :(得分:0)

如果您想从jsp页面发送回复,可以使用out.println()

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

在你的jquery中,你可以使用alert(msg);

但是你的问题是关于action.jsp url path或jsp文件。因为你在jquery发送动作时遇到错误!在谷歌浏览器中打开您的控制台(按F12 )。发送您的操作,您可以在控制台上看到错误。如果您收到“ 404错误”,则表示路径错误。如果您收到“ 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');
    });