【问题标题】:Spring MVC posting data to JQuery from controllerSpring MVC 从控制器向 JQuery 发布数据
【发布时间】:2015-09-16 07:07:38
【问题描述】:

我有一张我的 spring mvc 项目的图表。此图表从 javascript 获取数据。我的数据通过 modelandview 来自控制器。我可以使用 ${} 标签在 jsp 中读取模型数据。但是这个标签不适用于脚本。所以我不能填写图表。而且我必须使用循环(foreach)来吸引数据。

这是图表的代码。

$('#container').highcharts({
        chart: {
            type: 'column'
        },
        title: {
            text: 'Monthly Average Rainfall'
        },
        subtitle: {
            text: 'Source: WorldClimate.com'
        },
        xAxis: {
            categories: [
                '1',
                '2',
                '3',
                '4',
                '5',
                '6',
                '7',
                '8',
                '9',
                '10',
                '11',
                '12',
                '13',
                '14',
                '15'
            ]
        },
        yAxis: {
            min: 0,
            title: {
                text: 'Rainfall (mm)'
            }
        },
        tooltip: {
            headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
            pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
                '<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',
            footerFormat: '</table>',
            shared: true,
            useHTML: true
        },
        plotOptions: {
            column: {
                pointPadding: 0.01,
                borderWidth: 0
            }
        },
        series: [{
            name: 'Efor Time',
            dataVar: [${for ( var log in ${logs}) {
            **//in here i must add log.worked attributes value to dataVar.** 
            }}]

        }]
    });

这里是图表 div。

<div id="container" style="min-width: 770px; height: 514px; margin: 0 auto"></div>

它是我的 homeController

@RequestMapping(value = "/ProfilePage", method = RequestMethod.POST)
public ModelAndView profilePage(@RequestParam("username") String username) {
List<WorkLog> list = new ArrayList<WorkLog>();
WorkLog wl = new WorkLog();
wl.setUser_name(username);
list = wl.getMonthlyLogList();

ModelAndView model = new ModelAndView();

model.addObject("logs", list);
model.setViewName("ProfilePage");

return model;

}

【问题讨论】:

    标签: javascript jquery spring spring-mvc


    【解决方案1】:

    在您的页面开始添加变量,如 将此代码添加到您的 jsp 页面中

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <html>
    <head>
    <c:set var="x" value="${/*YOUR_MODAL_OBJECT*/}" />
    <script type="text/javascript">
        var variable= "<c:out value="${x}" />";
    </script>
    

    代码应该在所有 java 脚本导入之前进行,并且该变量将可用于您的 java 脚本代码。

    【讨论】:

      【解决方案2】:

      很遗憾,我们不能在 JavaScript 中使用 EL 标签。为了在 java 脚本中访问模型数据,首先将数据分配给 jsp 中的某个隐藏字段,并尝试在 java 脚本函数中访问该隐藏字段数据。

      参考:Accessing the expression language in javascript of a jsp page

      【讨论】:

        猜你喜欢
        • 2017-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-25
        • 1970-01-01
        • 2013-01-11
        • 1970-01-01
        相关资源
        最近更新 更多