Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.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
Java gwt表单:请求发送并到达,但在gwt中没有响应_Java_Gwt_Formpanel - Fatal编程技术网

Java gwt表单:请求发送并到达,但在gwt中没有响应

Java gwt表单:请求发送并到达,但在gwt中没有响应,java,gwt,formpanel,Java,Gwt,Formpanel,我一定错过了一些简单的东西,但我被卡住了。 根据firebug发送的请求,我在gwt中创建了一个FormPanel。 当我从firebug复制requestlink并在浏览器窗口中本机尝试时,该链接起作用。 是,客户端和服务器主机是相同的-->本地主机。 但答案并没有到达gwt。即使是客户端浏览器-firebug也不会显示任何结果 这是我的小表格: Button form = new Button ("SendForm", new ClickHandler() { @O

我一定错过了一些简单的东西,但我被卡住了。 根据firebug发送的请求,我在gwt中创建了一个FormPanel。 当我从firebug复制requestlink并在浏览器窗口中本机尝试时,该链接起作用。 是,客户端和服务器主机是相同的-->本地主机。 但答案并没有到达gwt。即使是客户端浏览器-firebug也不会显示任何结果

这是我的小表格:

    Button form = new Button ("SendForm", new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            logger.log(Level.FINER, "Creating SubmitForm...");

            TextBox cmd = new TextBox();
            cmd.setName("cmd");
            cmd.setText("GetMenuitemList");

            Button sendbutton = new Button("Senden");
            logger.log(Level.FINEST, "Creating grid...");
            Grid grid = new Grid(1, 2);
            grid.setWidget(0, 0, new  Label("Command"));
            grid.setWidget(0, 1, cmd);

            VerticalPanel vPan = new VerticalPanel();
            //vPan.add(grid);
            vPan.add(sendbutton);

            logger.log(Level.FINEST, "Creating FormPanel...");
            final FormPanel formPan = new FormPanel();
            formPan.setMethod(FormPanel.METHOD_POST);
            formPan.setAction(RequestHelper.getLink("Menu.php"));

            logger.log(Level.FINEST, "Binding Send button...");
            logger.log(Level.FINEST, "Binding SubmitHandler...");
            formPan.addSubmitHandler(new SubmitHandler() {

                @Override
                public void onSubmit(SubmitEvent event) {
                    OptionPane.showMessageDialog("Form submit", event.toDebugString(), MessageType.INFO, true);
                }
            });

            logger.log(Level.FINEST, "Binding SubmitCompleteHandler...");
            formPan.addSubmitCompleteHandler(new SubmitCompleteHandler() {

                @Override
                public void onSubmitComplete(SubmitCompleteEvent event) {
                    OptionPane.showMessageDialog("Form SubmitComplete", event.toDebugString(), MessageType.INFO, true);
                }
            });

            logger.log(Level.FINEST, "Adding grid to formpan...");
            formPan.add(grid);
            formPan.add(vPan);

            logger.log(Level.FINEST, "Creating DialogBox...");
            final DialogBox box = OptionPane.createClosableBox("TestForm", true);

            sendbutton.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    formPan.submit();
                    box.hide();
                }
            });

            box.add(formPan);
            box.center();
        }
    });
预期的答案如下所示:

{"sessionid":"6dbqibo25e0bn46fldqh37psj5","data":[{"title":"Start","Controller":"Start","Action":"Index","tooltip":"Startseite, Begr\u00fc\u00dfung","prefetch":"1"},{"title":"Register","Controller":"Person","Action":"Index","tooltip":"Neue Benutzer registrieren","prefetch":"0"},{"title":"Daten","Controller":"Contact","Action":"Index","tooltip":"Die eigenen Daten bearbeiten","prefetch":"1"},{"title":"Teilnehmerlisten","Controller":"Lists","Action":"Index","tooltip":"Listen der registrierten Benutzer","prefetch":"0"},{"title":"Suche","Controller":"Search","Action":"Index","tooltip":"Namenssuche nach Benutzer mit Kontaktm\u00f6glichkeit","prefetch":"1"},{"title":"Kalender","Controller":"Calendar","Action":"Index","tooltip":"Termine","prefetch":"1"},{"title":"Newsletter","Controller":"Newsletter","Action":"Index","tooltip":"Verschicken von Newslettern","prefetch":"1"},{"title":"Wettk\u00e4mpfer","Controller":"Competitor","Action":"Index","tooltip":"Zugriff auf Wettk\u00e4mpfer","prefetch":"1"},{"title":"Upload","Controller":"Upload","Action":"Index","tooltip":"Bilder, Videos o.\u00e4. hochladen","prefetch":"0"},{"title":"Administration","Controller":"Admin","Action":"Index","tooltip":"Datenbankfunktionen und Benutzerrechte","prefetch":"1"}]}
那么,这里出了什么问题

顺便说一句,我将在登录表单中使用此技术。我读到,在表单中执行此操作比通过RequestBuilder(已经运行)更好。文件上传将在稍后进行,因此表单问题在任何情况下都需要答案

先谢谢你。 马库斯

编辑:好的,我也在Chromium、Konqueror和Opera上进行了测试-代码正常。只是firefox。如何让firefox运行起来?
我是eclipse和gwt的新手。。。也许是一些编译器选项?

我自己发现并解决了这个问题:在执行form.submit之后,我隐藏了表单面板。 这是不允许的,正如javadoc所说:

在提交完成之前,不得分离FormPanel(即从其父级移除或从RootPanel断开连接)。否则,提交通知将失败


如果Firebug没有显示响应,请检查您的服务器。如果是,请检查其控制台是否存在可能的错误;还要检查来源:相同的服务器是不够的,您还需要相同的方案(http与https)和端口!最后,服务器必须使用
text/html
响应来响应submit complete event to fire。。。我可以检查服务器的哪些内容?答案是json字符串,这有问题吗?您是否使用
内容类型:text/html
进行回复?萤火虫真的告诉你它没有看到回应吗?有趣的是:在铬中它能工作。。。是的,firebug说,它接收0字节。。。正在等待。。。我没有给出内容类型——它只是简单的json。。错了吗?我将在我的问题中发布一个示例答案。