0

基本的に、私は現在、次のクラスを使用してサーバーからクライアントに値を渡すことができる、作業中のMVCプロジェクトを持っています...

package org.assessme.com;

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class UserManagementController {

private static final Logger logger = LoggerFactory.getLogger(HomeController.class);

    /**
     * Simply selects the home view to render by returning its name.
     */
    @RequestMapping(value = "/userManagement", method = RequestMethod.GET)
    public Object home(Locale locale, Model model) {
        logger.info("User management view controller loaded...");

        Date date = new Date();
        DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);

        String formattedDate = dateFormat.format(date);

        model.addAttribute("serverTime", formattedDate );
        return "userManagement";
    }
}

これは、表記法を使用してアクセスできます...

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
    <title>Home</title>
</head>
<body>
<h1>
    Hello world!  
</h1>

<P>  The time on the server is ${serverTime}. </P>
</body>
</html>

私の質問は、AjaxリクエストとしてJSONを使用できるように、このプロジェクトをどのように変更すればよいのでしょうか。

function userManage(){
    $('div.mainBody').load('userManagement');
}

userManagementがビューuserManagement(現在のように)を返すだけでなく、ユーザーのjson応答も返すようにします。

誰かが私にこれについて何かアドバイスを与えることができますか?

ありがとう、

4

1 に答える 1

2

この投稿では、Springを使用してこれを実現する方法について著者が説明しています。

コントローラで、JSONを返すには次のようなものが必要です。

@RequestMapping(value="/availability", method=RequestMethod.GET)
public @ResponseBody AvailabilityStatus getAvailability(@RequestParam String name) {
    for (Account a : accounts.values()) {
        if (a.getName().equals(name)) {
            return AvailabilityStatus.notAvailable(name);
        }
    }
    return AvailabilityStatus.available();
}

あなたの見解では、JQueryを使用してリクエストを作成する必要があります。

$(document).ready(function() {
    // check name availability on focus lost
    $('#name').blur(function() {
        checkAvailability();
    });
});

function checkAvailability() {
    $.getJSON("account/availability", { name: $('#name').val() }, function(availability) {
        if (availability.available) {
            fieldValidated("name", { valid : true });
        } else {
            fieldValidated("name", { valid : false,
                message : $('#name').val() + " is not available, try " + availability.suggestions });
        }
    });
}

編集:あなたはまた、この答えをチェックする必要があります。Jackson jarをライブラリに追加すると、SpringはPOJOSをJSONに解析し始めます。

于 2012-04-15T19:07:03.947 に答える