java - 无法使用 JSON 和 JQuery 显示从 Spring MVC Controller 返回的响应

标签 java jquery json jsp spring-mvc

我有一个简单的JQuery调用我的 Spring MVC 的函数 Controller :

function createDatabaseRecord() {
    if (isFormValid()) {
        $.getJSON(
                "${pageContext.servletContext.contextPath}${databaseConfigUrl}",
                {name:$('#idName').val(),
                    databaseName:$('#idDatabaseName').val(),
                    hostName:$('#idHostName').val(),
                    username:$('#idUsername').val(),
                    password:$('#idPassword').val()},
                function (data) {
                    var html = '<span>' + data + '</span>';
                    $('#idMessage').html(html);
                }
        );
    }
}

当我单击按钮时,该函数被调用,一切都很好。问题是这一行:$('#idMessage').html(html);不按预期工作。我有一个<div>相同的元素 JSP页。

<div id="idMessage">
</div>

我的 Spring Controller 方法由该函数调用:

@RequestMapping(value = DATABASE_CONFIG_RECORD_MAPPING, method = RequestMethod.GET)
public
@ResponseBody
String createDatabaseConfiguration(@RequestParam(value = "name", required = true) String name,
                                   @RequestParam(value = "databaseName", required = true) String databaseName,
                                   @RequestParam(value = "hostName", required = true) String hostName,
                                   @RequestParam(value = "username", required = true) String username,
                                   @RequestParam(value = "password", required = true) String password) {
    try {
        DatabaseConfig config = new DatabaseConfig();
        config.setName(name);
        config.setDatabaseName(databaseName);
        config.setHostName(hostName);
        config.setUsername(username);
        config.setPassword(password);
        configService.save(config);
    } catch (Exception ex) {
        LOGGER.error("Exception while create database configuration record.", ex);
        return "Error occurred while creating database configuration record: " + ex.getMessage();
    }
    return "Database configuration record successfully created.";
}

我可以在 FireBug 中看到我收到的回复:

enter image description here 。这是消息:已成功创建数据库配置记录。我希望显示在 <div> 中。元素,但不显示。有人知道哪里可能有问题吗?如果您需要更多代码,请询问。

最佳答案

您的回复不是 JSON 格式。

在 Controller 中尝试此代码片段:

return Collections.singletonMap("result", "Database configuration record successfully created");

并在 JavaScript 中使用它,如下所示:

var html = '<span>' + data.result + '</span>';

关于java - 无法使用 JSON 和 JQuery 显示从 Spring MVC Controller 返回的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13088552/

相关文章:

javascript - 计算特定属性的 JSON 对象的长度

java - 如何使用 JSONObject 创建 JSON 数组 android java

javascript - JQuery 图像 slider 工作异常

jquery - Servlet 从 jQuery 接收 OPTIONS 而不是 GET 请求?

javascript - 提交表单时,HTML 输入复选框返回 'On' 而不是 'True'

java - JFreeChart 2D 函数使用用户定义的自定义函数进行绘图

json - 从二进制转换为字符串,然后查询 int 值

java - 如何通过 REST Assured 将大量数据输入到查询参数中

Java - 错误消息帮助

java - Spring Integration 2.2.3.RELEASE @ServiceActivator 未调用