0

ユーザーがファイルをアップロードして、後で参照できるように保存できるようにするコードを次に示します。エントリ ポイント class-Home.java には次のものがあります --

FileUpload upload = new FileUpload();
FormPanel fp = new FormPanel();
fp.setEncoding(FormPanel.ENCODING_MULTIPART);
fp.setMethod(FormPanel.METHOD_POST);
fp.setAction("\\UploadServlet");
upload.setName("file-upload");

RootPanel とすべてを追加するために必要な追加コードと共に。

Q1. 次のようなものにする必要があります

fp.setAction(GWT.getModuleBaseURL()+"UploadServlet");

setActionに優先されますか? ここに正確にどのパスを配置する必要がありますか?

UploadServlet クラスは

http://www.tutorialspoint.com/servlets/servlets-file-uploading.htm

String filePath = getServletContext().getInitParameter("file-upload");

また、web.xml ファイルには

<servlet>
    <servlet-name>UploadServlet</servlet-name>
        <servlet-class>com.gwt.dlogpackage.client.UploadServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>UploadServlet</servlet-name>
    <url-pattern>/UploadServlet</url-pattern>
</servlet-mapping>

Q2. なぜこれが機能しないのかわかりません。UploadServlet クラスでファイルアイテムを取得しません。同じためにHTMLコードを使用すると機能しますが、このJavaコードでは機能しません。誰かが理由を教えてもらえますか?

Q3. また、web.xmlでこのようなものが必要ですか?

<context-param> 
    <description>Location to store uploaded file</description> 
    <param-name>file-upload</param-name> 
    <param-value> C:\users\.. </param-value> 
</context-param>
4

3 に答える 3

0

モジュール gwt.xml がどのように見えるかを確認します。

<module rename-to='module_name'>
...
</module>

メソッド GWT.getModuleBaseURL() は、ストリング「module_name」を返します。したがって、次のように入力すると:

fp.setAction(GWT.getModuleBaseURL()+"UploadServlet");

結果は次のとおりです。

fp.setAction("module_name/UploadServlet");

したがって、web.xml は次のようになります。

<servlet>
    <servlet-name>UploadServlet</servlet-name>
        <servlet-class>com.gwt.dlogpackage.client.UploadServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>UploadServlet</servlet-name>
    <url-pattern>module_name/UploadServlet</url-pattern>
</servlet-mapping>
于 2013-10-27T20:36:42.590 に答える