【问题标题】:Getting JSON value in JSP在 JSP 中获取 JSON 值
【发布时间】:2015-04-08 20:15:49
【问题描述】:

在我的 JSP (index.jsp) 中,我提交了一个使用 JSON 将参数传递给另一个 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 总是在警报中显示错误:“无法添加。” 尝试了cmets中所说的,但没有提出成功的信息。

【问题讨论】:

  • 我不知道 JSP,但看起来您只是在定义变量而不是打印它们?你需要打印出json中的字符串。
  • 在 action.jsp 中,尝试添加另一行 out.print(generatedString)。然后在您的 success 回调中将 alert("SUCCESS") 替换为 alert(msg)
  • 看到这个similar question
  • 试过但没用;
  • 可能是网址错误,这就是您收到错误消息的原因。让用户知道 action.jsp 与 index.jsp 处于同一级别(文件夹)

标签: jquery json jsp


【解决方案1】:

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

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

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

但是您的问题是关于 action.jsp url 路径或 jsp 文件。因为您在 jquery 发送操作中遇到错误!在 google chrome 中打开您的控制台(按 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');
    });

【讨论】:

  • 控制台没有错误...仍然报错。
  • 我添加了帖子样本。你可以试试吗?
  • 你能把你的项目结构发过来吗?
  • 感谢@hurricane 的帮助,我不得不停止该项目
猜你喜欢
  • 2013-08-28
  • 2014-03-07
  • 2015-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-22
  • 1970-01-01
相关资源
最近更新 更多