有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在javascript中使用struts标记

我试图使用Ajax请求从操作中获取价值,但在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。我在用struts2。我的javascript代码在JSP文件中。谁能告诉我怎样才能显示价值


共 (2) 个答案

  1. # 1 楼答案

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

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

    如果数据只是Integer个值,您甚至可以直接将该值放入代码中:

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

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

  2. # 2 楼答案

    您似乎正在通过Ajax从主页上调用/dashboard页面。并希望它向您发送请求属性consumptionData。这不起作用,因为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);