0

我有一个简单的问题,但我就是无法让这该死的东西发挥作用。这是我正在使用的代码。当我单击 main.jsp 中的按钮时,我会从 reportbuilder.do 中获得一个更新的图像,但它是一个空白图像(实际上,它在图像中提供了一个时间戳以显示已创建一个新图像)。在reportbuilder.do 中,我可以看到reportType、reportScope 和reportTime 都是空的。我究竟做错了什么?

主.jsp

<html>
    <head>
        <title>Failing example</title>
        <script src="/scripts/jquery-1.8.1.js"></script>
        <script>
            $(document).ready(function() {
                $("#updateReport").click(function() {
                    $("#chart1").load("/chart.jsp?reportType=${reportType}&reportScope=${reportScope}&reportTime=${reportTime}");
                    return false;
                });
            });
        </script>
    </head>
    <div id="chart1">
        <img src="/reportbuilder.do?">
    </div>
    <div id="dropDown1">
        <form method="GET" action="/chart.jsp">
            <select name="reportType" style="width:100%">
                <option value="devBugFix">Developer Bug Fixes</option>
                <option value="devHrsWork">Developer Hours Worked</option>
            </select>
            <select name="reportScope" style="width:100%">
                <option value="cmcProg">CMC Program</option>
                <option value="equFarmAs">Equestrian Farmer's Association</option>
            </select>
            <select name="reportTime" style="width:100%">
                <option value="daily">Daily</option>
                <option value="weekly">Weekly</option>
                <option value="monthly">Monthly</option>
            </select>
            <a href="#" id="updateReport"><button>Update Chart</button></a> 
        </form>
    </div>
</html>

图表.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <body>
        <img src="/reportbuilder.do?reportType=${reportType}&reportScope=${reportScope}&reportTime=${reportTime}" alt="Image Loading Failed">
    </body>
</html>

感谢您的时间!

4

2 回答 2

0

试试这个,看看你是否可以在其他 JSP 上处理参数:

$("#chart1").load("/chart.jsp,     
                  {reportType:${reportType},
                   reportScope:${reportScope},
                   reportTime:{reportTime}"
);
于 2012-09-19T19:02:41.477 回答
0

那是因为您在 javascript 中使用的占位符是空的。此 javascript 代码在客户端(浏览器)中执行,因此它们不会被任何东西动态替换(这就是我认为您所期望的),它们在呈现 JSP 时被空值替换:

$("#chart1").load("/chart.jsp?reportType=${reportType}&reportScope=${reportScope}&reportTime=${reportTime}");

您应该从 html 表单中获取它们的值。给选择一个 id 并使用例如获取它们的值$("#reportType")

于 2012-09-19T19:07:33.507 回答