DOJO StoreExplorer无法正确显示

时间:2010-01-14 16:33:18

标签: json dojo

我有一个非常简单的html示例,它调用一个返回非常简单的JSON对象的jsp页面。我的问题是我希望屏幕显示的内容没有显示出来。

这是我看到的屏幕截图。

screenshot screen shot link

以下是HTML文件的相关部分。

<script type="text/javascript" src="resources/dojo/dojo.js"  
 djConfig="isDebug:false,parseOnLoad:true"></script>

<script>
            dojo.require("dojo.data.ItemFileReadStore");
            dojo.require("dojox.grid.DataGrid");
            dojo.require("dojo.parser");
            dojo.require("dijit.form.TextBox");
            dojo.require("dijit.layout.ContentPane");
            dojo.require("dojox.data.StoreExplorer");

            var jsonStore; 

            dojo.xhrGet({
                url: "json.jsp",
                handleAs: "json",
                //handleAs: "text",
                load: populateDiv,
                error: function(type, data, evt){alert("error");}

            });
        function populateDiv(dataItems) {
            console.log(dataItems);
            jsonStore = new dojo.data.ItemFileReadStore(dataItems); 
        } 
</script>
<div id="strexplr" dojoType="dojox.data.StoreExplorer" store="jsonStore" 
     style="height:500px;width:100%;border:1px solid black"/> 

<script type="text/javascript" src="resources/dojo/dojo.js" djConfig="isDebug:false,parseOnLoad:true"></script> <script> dojo.require("dojo.data.ItemFileReadStore"); dojo.require("dojox.grid.DataGrid"); dojo.require("dojo.parser"); dojo.require("dijit.form.TextBox"); dojo.require("dijit.layout.ContentPane"); dojo.require("dojox.data.StoreExplorer"); var jsonStore; dojo.xhrGet({ url: "json.jsp", handleAs: "json", //handleAs: "text", load: populateDiv, error: function(type, data, evt){alert("error");} }); function populateDiv(dataItems) { console.log(dataItems); jsonStore = new dojo.data.ItemFileReadStore(dataItems); } </script> <div id="strexplr" dojoType="dojox.data.StoreExplorer" store="jsonStore" style="height:500px;width:100%;border:1px solid black"/>

这是我的JSP页面。 (原谅格式化)

<%@ page language="java" contentType="application/json; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib prefix="json" uri="http://www.atg.com/taglibs/json" %>

<json:object>
     <json:property name="identifier" value="customer_name"></json:property>
     <json:property name="label" value="customer_address"></json:property>

     <json:array name="items" var="item" items="2">
         <json:object>
             <json:property name="customer_name" value="nancy"></json:property>
             <json:property name="customer_address" value="LA"></json:property>
         </json:object>
         <json:object>
            <json:property name="customer_name" value="ken"></json:property>
            <json:property name="customer_address" value="CA"></json:property>
         </json:object>
    </json:array>
</json:object>

使用Firefox插件获取JSON对象,我能够确定我有一个有效的JSON对象。以下是使用该插件的JSP页面的输出。

<json:object>
     <json:property name="identifier" value="customer_name"></json:property>
     <json:property name="label" value="customer_address"></json:property>

     <json:array name="items" var="item" items="2">
         <json:object>
             <json:property name="customer_name" value="nancy"></json:property>
             <json:property name="customer_address" value="LA"></json:property>
         </json:object>
         <json:object>
            <json:property name="customer_name" value="ken"></json:property>
            <json:property name="customer_address" value="CA"></json:property>
         </json:object>
    </json:array>
</json:object>

1 个答案:

答案 0 :(得分:0)

查看截图 - 似乎你没有主题。你需要链接到dijit主题之一的相应css,然后将主题名称作为一个类添加到你的html主体。

另外,您可能只应在创建商店后为StoreExplorer设置商店。

你可以通过直接将网址提供给商店来避免你的xhrGet。

如果您还没有这样做,请查看the store explorer test page