smartgwt servlet使用

时间:2012-05-13 05:56:11

标签: servlets smartgwt

您好我在smartgwt中有一个listgrid,我需要一个按钮将文件上传到服务器,我创建了一个普通的servlet并在我的项目的web.xml中声明但我无法使其工作,make我部署404错误。您可以使用常规servlet(使用post和get方法)和gwt?

提前致谢。

2 个答案:

答案 0 :(得分:0)

GWT在服务器端代码之间传输数据(在像tomcat或jetty这样的servlet容器上运行)&客户端代码(GWT编译的客户端JS文件)以一种称为GWT-RPC的特殊方式。

enter image description here

客户需要知道将向/从服务器发送或接收的数据格式。服务器也必须知道客户端可以解析的数据格式(我们在数据的序列化和反序列化方面有严重的限制,因为我们只有javascript!)。这就是为什么你需要声明远程servlet和接口的接口的原因。 GWT使用它创建另一个异步接口&限制您对该接口的服务调用。 &安培;这就是为什么你不能在GWT中使用任何标准的servlet。

答案 1 :(得分:0)

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);