Java 为什么IE9用wicket形式的get方法替换post方法?

Java 为什么IE9用wicket形式的get方法替换post方法?,java,wicket,Java,Wicket,我的应用程序中有一些按钮: private class MyForm extends Form<Parametry> { private static final long serialVersionUID = 1L; public MyForm(final Parametry parametry) { add(new AjaxButton("1") { .... } add(new AjaxButton("2") { .... }

我的应用程序中有一些按钮:

private class MyForm extends Form<Parametry> {

    private static final long serialVersionUID = 1L;
    public MyForm(final Parametry parametry) {
        add(new AjaxButton("1") { .... }
        add(new AjaxButton("2") { .... }
        add(new Button("run") {
            private static final long serialVersionUID = 1L;

            @Override
            public void onSubmit() {
                logger.error("???????????????????" + parametry.getDatum());
            }
        });
    }
}
私有类MyForm扩展了表单{
私有静态最终长serialVersionUID=1L;
公共MyForm(最终参数){
添加(新的AjaxButton(“1”){….}
添加(新的AjaxButton(“2”){….}
添加(新建按钮(“运行”){
私有静态最终长serialVersionUID=1L;
@凌驾
提交时公共无效(){
logger.error(“???????”+parametry.getDatum());
}
});
}
}
在Firefox和Chrome中,一切正常,但我对IE8有问题。Ajax按钮工作正常,但当我按下按钮时,什么也没有发生。只是页面是新的(
?x
=
?x+1
),但
记录器
没有写任何东西

我怎么能修好它


更新:我使用的是1.5.7版。当我删除ajaxButton时,一切正常


更新2:我使用wireshark查看通信:

火狐:

POST/rob mon/statistika?5-4.1提交人-统计表格 HTTP/1.1

这应该很好

IE9:

得到 /rob mon/statistika?4-1.IBehaviorListener.0-statistikaForm&random=0.2323892690702561 HTTP/1.1


为什么它要使用
GET
方法呢?

作为一种替代方法,你不能为你的
表单
覆盖
onSubmit
而不是按钮吗?你甚至可能会失去按钮,并保留一个简单的
不绑在Wicket上,我认为这应该可以起作用。

作为替代方法,你不能为你的表单覆盖
onSubmit
Form
而不是按钮?您甚至可能会丢失按钮,并保留一个简单的
未绑定到Wicket,我认为这应该可以工作。

Wicket AjaxButtons通过向元素添加onclick事件来工作。您有任何js库可能干扰onclick事件处理程序Wicket生成吗?我记得有占位符插件存在一些问题


选项2:使用AjaxFallbackButton?

Wicket AjaxButtons通过向元素添加onclick事件来工作。您是否有任何js库可能会干扰Wicket生成的onclick事件处理程序?我记得占位符插件有一些问题


选项2:使用AjaxFallbackButton?

尝试覆盖OneError()在按钮上,查看是否到达。不,仍然没有。我还尝试添加反馈面板以获取一些错误,但也没有帮助。按钮是否应该在表单中工作?是的,表单中有…私有类MyForm扩展Form@Hudi我明白了,这很公平。我可能会在这一点上带出来看看到底是什么从浏览器发送到服务器。请尝试重写OneError()在按钮上,查看是否到达。不,仍然没有。我还尝试添加反馈面板以获取一些错误,但也没有帮助。按钮是否应该在表单中工作?是的,表单中有…私有类MyForm扩展Form@Hudi我明白了,这很公平。我可能会在这一点上带出来看看到底是什么从浏览器发送到如果我保留现有按钮并在提交时添加相同的onSubmit代码,那该怎么办?这是错误的吗?我会说这是不必要的重复,但当然,你可以..只要确保在代码中处理两个
onSubmit
方法都会被顺序调用。嗯,我看到了,然后这个按钮在mozilla和chrome中被提交两次。是否有获取浏览器的ome选项?这是IE9的优化,因此我不想从java代码中删除此按钮,并将其替换为表单方法。这不是优化,而是您应该如何处理表单提交。可以通过多种方式从各种客户端提交表单。您的代码目前只处理特定情况f按下按钮。覆盖
表单#onSubmit
可以处理所有情况,包括按下该按钮。嗯,如果我保留现有按钮,并在提交时向表单添加相同的onSubmit代码,会怎么样?这是错误的吗?我会说这是不必要的重复,但当然,你可以..只要确保在代码中处理
onSubmit
mMethods将按顺序调用。嗯,我明白了,然后这个按钮在mozilla和chrome中被提交两次。是否有一些选项可以获取浏览器?这是IE9的优化,所以我不想从java代码中删除这个按钮,并用表单方法替换它。这不是优化,而是处理表单提交的方式。有多种方法可以从各种客户端提交表单。您的代码当前仅处理按下按钮的特定情况。覆盖
Form\onSubmit
处理包括按下按钮在内的所有情况。