0

私のリクエストハンドラーは次のようになります

@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>

When i hit the ("http://localhost:8080/sample/view/jsonTable") url the its show the following error. 

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

このコードのどこが悪いのか誰でもわかります。

Jsonでひとつのデータグリッドを作りたい。したがって、私のアイデアは、データベースからデータを Java モデルとして取得し、それを json 形式に変換することです。そしてそれをブラウザに供給します。このために、TeamViewer をさらに貼り付けます。jsp。または、Javaデータがjson形式に変換されてからjspにレンダリングされる他のリンクができる場合。それから共有してください。

前もって感謝します

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html" >
        <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>
    <body>
        <script>

        var jqxhr = $.getJSON( "example.json", function() {
            console.log( "success" );
            })
            .done(function() {
            console.log( "second success" );
            })
            .fail(function() {
            console.log( "error" );
            })
            .always(function() {
            console.log( "complete" );
            });

            $(document).ready(function() {      

                //setup hellothe jtable that will display the results
                $('#ExpenseTableContainer').jtable({
                    title: 'Table of Expenses',
                    selecting: true, //Enable selecting 
                    paging: true, //Enable paging
                    pageSize: 10, //Set page size (default: 10)
                    sorting: true, //Enable sorting
                    actions: {
                        listAction: '${baseURL}/view/jsontable',
//                         createAction: '${baseURL}/datatable/addExpense',
//                         updateAction: '${baseURL}/datatable/updateExpense',
//                         deleteAction: '${baseURL}/datatable/deleteExpense'
                    },
                    fields: {
                        Id: {
                            key: true,
                            list: true,
                            create: false,
                            edit: false
                        },

                        Name: {
                            key: true,
                            list: true,
                            create: false,
                            edit: false
                        },

                        FirstName: {
                            title : 'First Name',
                            width : 30%''
                        },
                        Date: {
                            title: 'Date',
                            width: '30%'
                        },
                        Amount: {
                            title: 'Amount',
                            width: '15%'
                        },
                        CategoryId: {
                            title: 'Category',
                            options: '${baseURL}/datatable/categories'
                        },
                        SubcategoryId: {
                            title: 'Sub Category',
                            dependsOn: 'CategoryId',
                            options: function (data) {
                                if (data.source == 'list') {
                                    //Return url of all countries for optimization.
                                    //This method is called for each row on the table and jTable caches options based on this url.
                                    return '${baseURL}datatable/subcategories?categoryId=0';
                                }
                                return '${baseURL}/datatable/subcategories?categoryId=' + data.dependedValues.CategoryId;
                            },
                            list: false
                        },        
                        Description: {
                            title: 'Description',
                            width: '25%'
                        }
                    },
                    rowInserted: function (event, data) {
                        //if (data.record.Name.indexOf('Andrew') >= 0) {
                            $('#ExpenseTableContainer').jtable('selectRows', data.row);
                            console.log("records inserted");
                            //$('#PeopleTableContainer').jtable('load');
                        //}
                    },
                    //Register to selectionChanged event to hanlde events                                     
                    recordAdded: function(event, data){
                        //after record insertion, reload the records
                        $('#ExpenseTableContainer').jtable('load');
                    },
                    recordUpdated: function(event, data){
                        //after record updation, reload the records
                        $('#ExpenseTableContainer').jtable('load');
                    }
                });
                $('#ExpenseTableContainer').jtable('load');              

            });    
        </script>
4

1 に答える 1