1

私はjson構造のSpring MVCで新しく終了しました。ちょっと当惑。

私のプログラムでは、コントローラーに次のリクエストハンドラーがあります

@ResponseBody
@RequestMapping(value = "/jsonTable", method = RequestMethod.GET)
public String populateJsonTable(@ModelAttribute("model") Person model) {
    DataTables<Person> dt = new DataTables<Person>();
    Person person = new Person();
    List<Person> personList = person.findMatches(ctxt.getSession(), 1);
    dt.setEntityData(personList);
    dt.setiTotalDisplayRecords(5);

    return JsonUtil.toJson(dt);
}

ビュー名と json データを一緒に返すにはどうすればよいですか。jsonデータを正しいjspページに入力できるようにします。

jsonデータは、ブラウザで取得したものを次のように表示します

{
"entityData":[
    {
        "updateDateTime":null,
        "Id":4,
        "Active":null,
        "Date":null,
        "Name":null,
        "Code":null,
        "Description":"test3",
        "FirstName":"Promila",
        "LastName":"kumar"
    },
    {
        "updateDateTime":null,
        "Id":3,
        "Active":null,
        "Date":null,
        "Name":null,
        "Code":null,
        "Description":"test2",
        "FirstName":"Laveena",
        "LastName":"kumar"
    },
    {
        "updateDateTime":null,
        "Id":2,
        "Active":null,
        "Date":null,
        "Name":null,
        "Code":null,
        "Description":"test2",
        "FirstName":"Parveen",
        "LastName":"kumar"
    }
    ],
    "sEcho":0,
    "iTotalRecords":null,
    "iTotalDisplayRecords":5
}

編集可能で間違ってすみません。初めてstatckを使用しています。

コードを変更した後、次のエラーが発生しました。

(変更コード)

@ResponseBody
    @RequestMapping(value = "/jsonTable", method = RequestMethod.GET)
    public ModelAndView populateJsonTable(@ModelAttribute("model") Person model) {
       DataTables<Person> dt = new DataTables<Person>();
       Map<String, Object> result = new HashMap<String, Object>();
       Person person = new Person();
       List<Person> personList = person.findMatches(ctxt.getSession(), 1);
       dt.setEntityData(personList);
       dt.setiTotalDisplayRecords(5);
       result.put("personList", JsonUtil.toJson(dt));
       return new ModelAndView("TeamViewer", result);
    }

エラー : このリクエストで識別されたリソースは、リクエストの "accept" ヘッダー () に従って、受け入れられない特性を持つ応答しか生成できません。

Jspページは次のようになります

<head>
    <meta http-equiv="Content-Type" content="application/json; charset=windows-1252">
    <title>JSP Page</title>
    <c:set var="baseURL" value="${pageContext.request.contextPath}"/>
    <link href="${baseURL}/css/jquery-ui-1.8.16.custom.css" rel="stylesheet" type="text/css" />
    <link href="${baseURL}/css/jtable_green.css" rel="stylesheet" type="text/css" />

    <script src="${baseURL}/js/jquery-1.6.min.js" type="text/javascript"></script>
    <script src="${baseURL}/js/jquery-ui-1.8.16.custom.min.js" type="text/javascript"></script>

    <script src="${baseURL}/js/jquery.jtable.js" type="text/javascript"></script>
    <script src="${baseURL}/js/json2.js" type="text/javascript"></script>
</head>

私はまだブロックされていますが、どんな体でも私を助けることができます.

4

1 に答える 1

2

コントローラーの戻り値の型を ModelAndView に変更します。コードを更新しました。以下を試してください。

     @ResponseBody
     @RequestMapping(value = "/jsonTable", method = RequestMethod.GET)
     public ModelAndView populateJsonTable(@ModelAttribute("model") Person model) {
        DataTables<Person> dt = new DataTables<Person>();
        Map<String, Object> result = new HashMap<String, Object>();
        Person person = new Person();
        List<Person> personList = person.findMatches(ctxt.getSession(), 1);
        dt.setEntityData(personList);
        dt.setiTotalDisplayRecords(5);
        result.put("personList", JsonUtil.toJson(dt));
        return new ModelAndView("your jsp page here e.g page/personForm", result);
     }
于 2013-10-20T13:20:59.290 に答える