首页 > 解决方案 > 如何访问通过控制器类中的链接传递的变量?

问题描述

我有一个在 tomcat 中运行的 java spring mvc 应用程序。

下面是我如何创建我的数据表。

我需要将 sender 和 smsc 变量传递给控制器​​,以便我可以使用它来查询列表,然后在同一页面上返回列表。

$('#datatables').DataTable({
            "dom": '<"toolbar">frtip',
            "responsive": true,
            "ordering": false,
            "scrollY": "550px",
            "scrollCollapse": true,
            "ajax": "smsSenders.json",
            "aoColumns": [
                {"mData": "sender"},
                {"mData": "content"},
                {"mData": "receiveTime"},
                {"mData": "portId",
                    "fnCreatedCell": function (nTd,oData) {
                        $(nTd).html("<i class='ti-pencil-alt btn btn-simple btn-assign btn-icon' data-toggle='modal' data-mode='asign'></i>\n\n\
                        <a href='${pageContext.request.contextPath}/dashboard?sender="+oData.sender+"&smsc="+oData.smsc+"><i class='ti-comment-alt btn btn-simple btn-reply btn-icon' data-toggle='modal' data-mode='conversation'></i>\
                     ");
                    }
                }
            ],
            language: {
                "search": "_INPUT_",
                searchPlaceholder: "Search records"
            }

        });

    demo.initCirclePercentage();

我有这个控制器类:

@RequestMapping(value = {"/dashboard"}, method = RequestMethod.GET)
public String dashboard(ModelMap model, @RequestParam(value = "sender", required = false) String sender, 
        @RequestParam(value = "smsc", required = false) String smsc, HttpServletRequest request) {


        model.addAttribute("pageTitle", "asdasdasd");
        String totalTickets = cnrService.countAllTickets();
        String countOpenTickets = cnrService.countAllTicketsOpen();
        String countInworkTickets = cnrService.countAllTicketsInwork();
        String countPendingTickets = cnrService.countAllTicketsPending();
        String countClosedTickets = cnrService.countAllTicketsClosed();
        model.addAttribute("countOpenTickets", countOpenTickets);
        model.addAttribute("countInworkTi ckets", countInworkTickets);
        model.addAttribute("countPendingTickets", countPendingTickets);
        model.addAttribute("countClosedTickets", countClosedTickets);
        model.addAttribute("totalTickets", totalTickets);   

        return "dashboard";    


}

我正在尝试打印值或使用 LOGGER.debug 但它似乎不会打印任何东西,我认为它没有将值传递给控制器​​类。我真的需要你们的帮助,我已经做了将近两个星期了。

标签: javaspringspring-mvcweb-applicationsdatatable

解决方案


我对此知之甚少,DataTable但我想为您的问题提供一些线索:

1.确保请求触发时controlelr被命中,即controlelr可以处理请求但无法获取params。

2.F12按控制台查看请求信息。

3.很可能是出现了问题DataTable,我不确定是什么问题,您可以参考以下示例:

  $('#tableInfo').DataTable({
    orderMulti: false,
    ordering: false,
    scrollX: $(window).width() - 30,
    scrollY: $(window).height() - 300,
    scrollCollapse: true,
    lengthMenu: [10, 50, 100, 300],
    select: false,
    filter: false,
    processing: true,
    serverSide: true,
    language: {"url": [[${prop.ctx}]] + "/js/jquery-datatables.language.json"},
    ajax: {
        url: [[${prop.ctx}]] + "/data",
        type: "post",
        contentType: "application/json",
        data: function (data) {
            $.extend(data, {
                searchBeans: $("form").serializeArray()
            });
            return JSON.stringify(data);
        }
    },
    columns: [
        {
            title: "#",
            orderable: false,
            searchable: false,
            width: "2%",
            render: function (data, type, row, meta) {
                return meta.row + 1;
            }
        }, {
            title: "NAME",
            data: "username",
            width: "10%"
        }
     ]
});

推荐阅读