1

コントローラー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>その要素に表示されることを期待していますが、表示されません。誰かがどこに問題があるのか​​ 知っていますか? さらにコードが必要な場合は、お問い合わせください。

4

2 に答える 2

1

私は間違いなくJavaの専門家ではありませんが(問題ないように見えますが)、jQueryのgetJSONメソッドを使用しているにもかかわらず、ビューがプレーンテキストを返すだけであるという事実に問題があると思います。

応答を JSON に変換するか、代わりに$.getorを使用してより手動の AJAX 要求に切り替える必要があります。$.ajax

于 2012-10-26T14:18:32.607 に答える
1

応答が JSON 形式ではありません。

コントローラーで次のスニペットを試してください。

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

そして、次のようにJavaScriptで使用します。

var html = '<span>' + data.result + '</span>';
于 2012-10-26T14:23:28.947 に答える