使用填充了以前数据的表单数据重新加载页面的简单方法

时间:2012-08-16 07:30:58

标签: java html forms wicket

我有一个带有验证码图像的简单注册页面,我为用户提供了获取不同验证码图像的选项。起初我只是尝试重新加载页面,它给了我一个新的验证码图像,但不幸的是,表格被清除,这对用户来说是不可接受的和令人讨厌的。

您如何解决这个问题?如果我从“新图像”链接提交表单,那么wicket发布过程将在它到达我的onSubmit函数之前返回各种验证错误,这也是不好的行为。

我想我还可以添加验证码图像的ajax部分重新加载,尽管这是一个更复杂的解决方案。任何指向良好和干净的解决方案的指针都会很好。

1 个答案:

答案 0 :(得分:5)

您可以在“新图片”链接中提交表单,方法是Button[Ajax]SubmitLink。然后,您可以通过在该链接上调用onSubmit来跳过所有,但链接的setDefaultFormProcessing(false)方法:

checkForm.add(new SubmitLink("submit") {
    @Override
    public void onSubmit() {
        super.onSubmit();
        // ...new captcha here...
    }
}.setDefaultFormProcessing(false));

这将导致所有内容被提交(并保留用于下一个渲染),但它将跳过值,验证和模型更新的转换。