Forms GWT表单输入字段没有值

Forms GWT表单输入字段没有值,forms,gwt,Forms,Gwt,我对GWT和HTML表单有一个奇怪的问题。 我制作了一个简单的FormPanel,其中包含3个基本元素:用于上传图像的文件上传、用于图像名称的文本框和用于提交的按钮。一切正常(我至少可以在服务器端保存图像),除了我在输入字段中键入的任何内容都没有值,即在Chrome的Inspect元素中,我清楚地看到它没有值=“…”字段 为什么会发生这种情况,我该如何解决?如果没有名称,则无法保存该名称。 编辑: 这是除事件处理程序之外的所有布局。提交时只需检查fileUpload值是否有允许的文件扩展名。属性

我对GWT和HTML表单有一个奇怪的问题。
我制作了一个简单的FormPanel,其中包含3个基本元素:用于上传图像的文件上传、用于图像名称的文本框和用于提交的按钮。一切正常(我至少可以在服务器端保存图像),除了我在输入字段中键入的任何内容都没有值,即在Chrome的Inspect元素中,我清楚地看到它没有值=“…”字段

为什么会发生这种情况,我该如何解决?如果没有名称,则无法保存该名称。
编辑:


这是除事件处理程序之外的所有布局。提交时只需检查fileUpload值是否有允许的文件扩展名。

属性定义节点的
defaultValue
属性。设置
属性(在控件中以编程方式或交互方式)不会更改元素的属性


如果您想在Chrome的开发者工具中查看元素的当前值,请在“元素”窗格中选择它(如果您使用“检查元素”上下文菜单项,它已经被选中),然后在JavaScript控制台中键入
$0.value

同样,我的问题的根本原因是调用form.reset()太快。请注意,每个输入字段都是form.submit()和form.reset()的目标。因此,您的文本框也将作为form.submit()发送,如果您调用reset,它将被清除

好的,我可以在开发工具中查看该值,但是如何使该值显示在表单提交中?目前它是空的,我不知道为什么会这样,因为form.onSubmit()中的input.getValue()返回了正确的值,但在服务器端它给了我空值。哦,对不起,你说“一切正常”,所以我以为你只是对开发工具有问题。确保
文本框中的
setName
,当然,它位于
表单面板中。如果您显示构建UI的代码,这可能会有所帮助。您必须解析POST请求以获取参数,而您将无法使用request.getParameter来完成此操作。。。功能类型。通常使用第三方库来实现解析,例如Jakarta fileupload:final List items=upload.parseRequest(请求);如果(item.getFieldName().equals(“文件名”))-item.getName()==null,则循环执行此操作。我还试着用response.getWriter()和Window打印出每个项目。最后会发出警报,文件名的值总是空的,任何地方都没有实际的类型值。如果我使用GWTUpload并将输入字段添加到SimpleFileUploader小部件中,情况也是一样的。
private final FlowPanel imagePanel = new FlowPanel();
private final FormPanel form = new FormPanel();
private final FileUpload fileUpload = new FileUpload();
private final Button submitButton = new Button("Upload");
private final TextBox fileName = new TextBox();
private final HorizontalPanel hp = new HorizontalPanel();
private final VerticalPanel vp = new VerticalPanel();

public void onModuleLoad()
{
    vp.add(fileUpload);
    hp.add(fileName);
    hp.add(submitButton);
    vp.add(hp);
    form.add(vp);

    form.setEncoding(FormPanel.ENCODING_MULTIPART);
    form.setMethod(FormPanel.METHOD_POST);
    form.setAction("/upload");

    fileUpload.setName("upload"); // image identifier, used in upload handler

    fileName.setName("fileName");
    fileName.setValue("Enter file name");
    fileName.setMaxLength(40);
    fileName.addStyleName("fileNameHint");

    RootPanel.get("uploadBar").add(form);
    RootPanel.get("thumbnails").add(imagePanel);
}