こんにちは私はsmartgwtにリストグリッドがあり、サーバーにファイルをアップロードするためのボタンが必要です。通常のサーブレットを作成し、プロジェクトのweb.xmlで宣言しましたが、動作させることができません。404エラーが発生します。デプロイする。gwtで通常のサーブレット(postメソッドとgetメソッドを含む)を使用できますか?
前もって感謝します。
HttpServlet
smartgwt で使用できます。あなたが持っDynamicForm
て設定する必要があります.setCanSubmit(true);
サンプルコード:
final String DEFAULT_FILE_UPLOAD_SERVICE_PATH = "upload";
final String TARGET = "uploadTarget";
VLayout body = new VLayout();
uploadForm = new DynamicForm();
// initialise the hidden frame
NamedFrame frame = new NamedFrame(TARGET);
frame.setWidth("1px");
frame.setHeight("1px");
frame.setVisible(false);
uploadForm.setEncoding(Encoding.MULTIPART);
uploadForm.setMethod(FormMethod.POST);
// set the (hidden) form target
uploadForm.setTarget(TARGET);
uploadForm.setAction(DEFAULT_FILE_UPLOAD_SERVICE_PATH);
// initialise the File name field
uploadItem = new UploadItem("filename");
uploadItem.setName("filename");
uploadItem.setTitle("File name");
// set the fields into the form
uploadForm.setFields(uploadItem);
// add the Upload Form and the (hidden) Frame to the main layout container
body.addMember(uploadForm);
body.addMember(frame);
GWT は、GWT-RPC と呼ばれる特別な方法で、サーバー側コード (tomcat や jetty などのサーブレット コンテナーで実行) とクライアント側コード (GWT でコンパイルされたクライアント側 JS ファイル) の間でデータを転送します。
サーバーとサーバーとの間で送受信するデータの形式を知る必要があるクライアントは、クライアントが解析できるデータの形式も知っている必要があります (一方の側には JavaScript しかないため、データのシリアル化と逆シリアル化には深刻な制限があります!)。これが、リモート サーブレットのインターフェイスを宣言する必要がある理由です。GWT はそれを使用して別の非同期インターフェイスを作成し、サービス呼び出しをそのインターフェイスに制限します。これが、GWT で標準のサーブレットを使用できない理由です。