Java 为什么在我的代码中没有调用is onSubmit?

Java 为什么在我的代码中没有调用is onSubmit?,java,wicket,Java,Wicket,网页中未调用onSubmit() 我已经用super.onSubmit()试过了,我试过用一个按钮来实现它 而且我确信它没有被调用,因为在onSubmit-方法中,它尝试在代码中sysout一些字符串 代码如下: Form form = new Form("setPersonalDataForm") { @Override public void onSubmit() { System.out.println(&q

网页中未调用
onSubmit()

我已经用
super.onSubmit()
试过了,我试过用一个按钮来实现它

而且我确信它没有被调用,因为在
onSubmit
-方法中,它尝试在代码中sysout一些
字符串

代码如下:

Form form = new Form("setPersonalDataForm") {

        @Override
        public void onSubmit() {
              System.out.println("If you read this its called");
            String setPersonalDataEndpoint = new PropertyLoader().getPropValues("setPersonalData", "api.properties");

            JSONObject setPersonalDataJson = new JSONObject();

            Object uasAccountId = uasAccountIdTextField.getDefaultModelObject();
            Object firstname = firstnameTextField.getDefaultModelObject();
            Object middlename = middlenameTextField.getDefaultModelObject();
            Object surname = surnameTextField.getDefaultModelObject();
            Object companyline1 = companyLine1TextField.getDefaultModelObject();
            Object companyline2 = companyLine2TextField.getDefaultModelObject();

            String dateToConvert = birthdateTextField.getDefaultModelObject().toString();

            DateConverter dateConverter = (date) -> {

                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM d H:mm:ss zzz yyyy", Locale.ENGLISH);
                ZonedDateTime parsedDate = ZonedDateTime.parse(dateToConvert, formatter);
                DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
                Object birthdate = parsedDate.format(formatter2);

                return birthdate.toString();
            };

            Object birthdate = dateConverter.convertDate(dateToConvert);

            setPersonalDataJson.put("brand", selectedBrand);
            setPersonalDataJson.put("uasAccountId", uasAccountId);
            setPersonalDataJson.put("salutation", selectedSalutation);
            setPersonalDataJson.put("gender", selectedGender);
            setPersonalDataJson.put("firstname", firstname);
            setPersonalDataJson.put("middlename", middlename);
            setPersonalDataJson.put("surname", surname);
            setPersonalDataJson.put("companyLine1", companyline1);
            setPersonalDataJson.put("companyLine2", companyline2);
            setPersonalDataJson.put("birthday", birthdate);


            PageParameters setPersonalDataParameters = new PageParameters();

            try {

                ResponseEntity response = new TestService().postTestJson(setPersonalDataJson, setPersonalDataEndpoint);

                String responseBody = response.getBody().toString();

                JSONObject responseJsonObject = new JSONObject(responseBody);

                String testSuccessfull = responseJsonObject.get("status").toString();
                String message = responseJsonObject.get("message").toString();

                setPersonalDataParameters.add("testSuccessfull", testSuccessfull);
                setPersonalDataParameters.add("message", message);
                setPersonalDataParameters.add("requestJson", setPersonalDataJson.toString());
                setResponsePage(ResponsePage.class, setPersonalDataParameters);

            } catch (Exception e) {

                setPersonalDataParameters.add("testSuccessfull", "failed");
                setPersonalDataParameters.add("requestJson", setPersonalDataJson.toString());
            }
            setResponsePage(ResponsePage.class, setPersonalDataParameters);
        }
    };
有人知道为什么不调用它以及如何修复它吗? 提前谢谢

如果未调用
onSubmit()
,则很可能调用
onError()


我的Apache Wicket培训的“最佳实践”幻灯片中的一个项目是:始终将
onError()
onSubmit()
一起重写!大多数情况下,您会希望在其主体中重新渲染反馈面板。但是,即使将某些内容打印到stderr,也会为您节省很多挫折

非常确定,因为printl不是一个函数…非常感谢!你能给我解释一下为什么不叫onSubmit而是叫onError吗?或者你能给我发个链接吗?@XaNaX420这在官方Wicket文档中有很好的描述: