我有一个简单的JQuery
函数调用我的Spring MVC
控制器:
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控制器方法由该函数调用:
@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中看到响应来找我:
。这是消息:成功创建数据库配置记录。我希望在<div>
元素中显示,但不会显示。有人知道问题出在哪里吗?如果您需要更多代码,请询问。
答案 0 :(得分:1)
我绝对不是Java方面的专家(虽然它看起来不错)但是认为你的问题来自于你使用jQuery的getJSON
方法,但你的视图只是返回纯文本。
您需要将响应转换为JSON,或者使用$.get
或$.ajax
转换为更加手动的AJAX请求。
答案 1 :(得分:1)
您的回复不是JSON格式。
在您的控制器中试用此代码段:
return Collections.singletonMap("result", "Database configuration record successfully created");
并在javascript中使用它:
var html = '<span>' + data.result + '</span>';