Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用dojo上载程序到servlet时出错_Javascript_Html_Servlets_Dojo_Uploader - Fatal编程技术网

Javascript 使用dojo上载程序到servlet时出错

Javascript 使用dojo上载程序到servlet时出错,javascript,html,servlets,dojo,uploader,Javascript,Html,Servlets,Dojo,Uploader,我试图上传一个文件,并使用post方法将其发送到一个Javaservlet。我的道场是1.8。刚开始使用javascript,还有很多东西要学。如果可以,请纠正我。所以我有两个未定义的属性:label、UploaderID和dojosourcepath,这应该是真的 **************** REVISED CODE *************************** <!DOCTYPE HTML> <html> <head> &l

我试图上传一个文件,并使用post方法将其发送到一个Javaservlet。我的道场是1.8。刚开始使用javascript,还有很多东西要学。如果可以,请纠正我。所以我有两个未定义的属性:label、UploaderID和dojosourcepath,这应该是真的

   **************** REVISED CODE ***************************

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>dojox.form.Uploader</title>

    <link href="dijit/themes/dijit.css" rel="stylesheet" />
    <link href="dijit/themes/claro/Common.css" rel="stylesheet" />
    <link href="dijit/themes/claro/form/Common.css" rel="stylesheet" />
    <link href="dijit/themes/claro/form/Button.css" rel="stylesheet" />
    <link href="dojox/form/resources/UploaderFileList.css" rel="stylesheet" />

     <script type="text/javascript" 
      src="//ajax.googleapis.com/ajax/libs/dojo/1.8/dojo/dojo.js" 
     data-dojo-config="parseOnLoad: true, async: true, 
                                         isDebug: true, 
                                         packages: [{name: 'dojo', location: '.'},
                                                    {name: 'dijit', location: 
                                                     '/dojo/dijit'},
                                                    {name: 'dojox', location:
                                                       '/dojo/dojox'},
                                                     ]"></script>

    <script> 
      dojo.require("dojo.domReady")
dojo.require("dijit.form.Button");
dojo.require("dijit.Dialog");
dojo.require("dijit.form.TextBox");   
dojo.require("dojox.form.Uploader");
dojo.require("dojox.form.uploader.FileList");
dojo.require("dojo.parser");
});
    </script> 
</head>
<body class="claro">
    <form method="post" action="user" id="myForm" enctype="multipart/form-data" >
        <fieldset style="background-color:lightblue;">

            <h1 id="greeting">User Administration</h1>

    <p>First Name: <input type="text" name="fname" size="20"> 

            LastName: <input type="text" name="lname" size="20"></p>    

            <input class="browseButton" name="uploadedfile" multiple="false"   
            type="file" data-dojo-type="dojox.form.Uploader" label="Select Some File"
           id="uploader" />

           <p><input type="submit" label="Submit" data-dojo-type="dijit.form.Button" />
            </p>

           <div id="files" data-dojo-type="dojox.form.uploader.FileList"
            uploaderId="uploader"></div>
        </fieldset>
    </form>                     
</body>
</html>

是否正确设置了dojo.js?您如何使用您的应用程序?您是否已在计算机中或使用某些远程服务器下载了dojo源文件。 您可以使用谷歌CDN,如下所示。还要检查一下dojo源代码的设置

src="//ajax.googleapis.com/ajax/libs/dojo/1.8/dojo/dojo.js"
除了@Dmitri注释之外。 删除下面的行

<script> dojoConfig ={isDebug:true, ParseOnLoad: true,};</script>
因为您将在下一行via中重新定义dojoConfig。数据dojo配置

您也可以使用新的AMD格式进行如下所示的require调用

<script type="text/javascript"> 
require([
            "dojo/parser",
            "dijit/form/Button",
            "dijit/Dialog",
            "dijit/form/TextBox",
            "dojox/form/Uploader",
            "dojox/form/uploader/FileList"
            "dojo/domReady!"
], function (parser, Button, Dialog, TextBox, Uploader, FileList ) {
// now parse the page for widgets
            parser.parse();
// Your code will go here
});
</script>

我注意到这里有几个错误:

您的第一行:

dojo.required不存在,应为dojo.require

除此之外,dojo.domready甚至不是一个模块,应该是dojo.domready

以下代码完全错误:

函数分析器{ parser.parse; }; 您可能从使用AMD的代码示例中复制粘贴了它,但是,您不再使用AMD,而是使用dojo.require,因此此代码甚至不会编译

但是,您使用的是parseOnLoad机制,因此实际上您不需要自己解析页面,这甚至会导致错误,因为您要解析相同的小部件两次

如果删除该部分代码,则使加载解析机制工作所需的全部内容是:

dojo.require("dojo.parser");
这段代码看起来像是有人试图将AMD示例转换为非AMD代码时失败了,另一个错误是:

dojo.require("dijit.form/Button");
在使用AMD之前的代码dijit.form.Button时,应该使用点表示法。Dojo可能会理解这一点,至少在最近的Dojo版本中是这样,但我怀疑这在旧版本的Dojo中是否有效

通过换行符拆分属性名称,例如:

属性名数据dojo类型可能应该是一行,如果将该属性拆分为多行,我认为这是无效的

加载页面时用于解析页面的Dojo配置属性是parseOnLoad而不是parseOnLoad。我不确定Dojo是否处理这些不区分大小写的属性,但通常JavaScript属性是区分大小写的

但是,您已经在加载dojo的标记上使用了data dojo config属性,所以实际上您甚至不需要它


如果您修复了所有这些错误,您的脚本在使用AMD或不使用AMD的情况下都应该可以正常工作,正如您在本手册中所看到的:

谢谢Dimitri,我已更正了所有必要的更改。然而,我认为我的问题是我的模块没有被识别。我在eclipse中将dojo 1.8的发行版作为文件系统导入到WebContent文件中。而不是标签:选择一些文件。我正在浏览。我将src添加到我的WebContent文件Eclipse中。不确定是否正在阅读。这是一个java servlte的index.html,它将读取名称并读取上传的文件。仍然无法识别属性:lable和uploaderId
dojo.require("dojo.parser");
dojo.require("dijit.form/Button");