0

私のAJAX呼び出し:

var url = "UsersGroupReader.html?selectedCompanyName=" + selectedCompanyName + "&test="+Math.random();
req.onreadystatechange = processAccessGroupRequest;
req.open("GET", url, true); 
req.send(null);

function processAccessGroupRequest() {
    if (req.readyState == 4) {
        alert("req.status : " + req.status)
    if (req.status == 200) {
            var message = req.responseXML
            alert("message " + message);
            if (message == "No Database Connection") {
                alert("Please check the database connection");
            } else if (message == "DataDeleted") {
                //alert("Data has been deleted from Database. Please LOGOUT and try again");
                alert("Access Denied");
            } else {
                //setAccessGroups(message);
            }
        }
    }
}

これは私のコントローラーです

@RequestMapping(value = "Jsp/UsersGroupReader.html", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody Vector<String> readUsersGroup(HttpServletRequest request,
        HttpSession httpSession) {
        .....
        .....
        return Vector;

req.responseXMLは_null

返さvectorれたオブジェクトは で読み取られますが、javascript方法がわかりません。誰でも私を助けてもらえますか?

4

1 に答える 1

0

この ajax リクエストを処理しているコントローラー メソッドの戻り値の型を変更する必要があります。戻り値の型は、jsp で必要なオブジェクトの型のクラスにする必要があります。例えば。List<String>またはあなたが持っている他のカスタムクラス。

@ResponseBodyまた、このリクエストを処理するコントローラー関数で注釈を宣言する必要があります。jackson-core-aslまた、jackson-core-mapperバージョン 1.5などの JSON ライブラリも必要です。これにより、戻り値の型のクラス オブジェクトが JSON オブジェクトに変換され、応答で取得されます。そして、@RequestMapping注釈は を宣言する必要がありproduces=MediaType.APPLICATION_JSON_VALUEます。

生成属性の構文。

@RequestMapping(value = "/xxx/yyy", method = RequestMethod.POST, produces=MediaType.APPLICATION_JSON_VALUE)

これがお役に立てば幸いです。

于 2013-02-07T13:24:25.770 に答える