1

我正在尝试使用 Ajax 请求从 Action 中获取价值,但是在使用 javascript 中的 struts 标记来显示该值时遇到了问题。

Javascript代码:

 dojo.xhrPost({
            url: "dashboard"
            ,content: myParameterscomp
            , handle: function(response, ioargs) {

               if (ioargs.xhr.status == 200)
               {
                   var data = "<s:property value='#request.consumptionData'/>"
                   console.log(data);
               }

             }

            ,error: function (data) {
                handleError(data.description);
            }           
        });

Java代码:

Map request = (Map)context.get("request");
 request.put("consumptionData",  43);

<s:property value='#request.consumptionData'/> 在控制台而不是43上获得 data 的值。我正在使用struts2。我的 javascript 代码在 JSP 文件中。谁能告诉我如何显示价值?

4

2 回答 2

1

您似乎正在从您的主页通过 Ajax 调用 /dashboard 页面。并期望它向您发送请求属性消费数据。这不起作用,因为您的 JSP 不包含所需的数据。您需要将数据放入 JSP 中,然后在 Ajax 中获取相同的数据。将您的响应转换为 JSON。执行此操作的最简单方法是在您的 Ajax 响应 JSP 中添加以下类似代码。

仪表板.jsp

{"consumptionData": < "<s:property value='#request.consumptionData'/>"}

当您通过 ajax 加载此 JSP 时,在主页中,您可以解析此 JSON 输出并使用 Javascript 中的数据。

var json = JSON.parse(response);
var data = eval(json.consumptionData);
于 2012-12-17T10:00:47.010 回答
0

浏览器中的代码接受 JSON。您可以将您的请求序列化为 JSON 并嵌入到您的 JavaScript 文件中。例如:

var data = <%= toJson(request.get("consumptionData")) %>

如果数据是简单的Integer值,你甚至可以直接将值放入代码中:

var data = <%= request.get("consumptionData") %>

语法可能会有所不同(我不熟悉 struts 标签),但想法是一样的。

于 2012-12-17T09:09:41.173 回答