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);
    }

错误:此请求标识的资源只能生成具有根据请求“接受”标头()不可接受的特征的响应。

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 回答