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

Why is onSubmit is not called in my code?

onSubmit() 未在网页中调用。

我已经用 super.onSubmit() 试过了,我试过用 Button 实现它。

而且我确定它没有被调用,因为试图在 onSubmit - 方法的代码中对一些 String 进行系统输出。

代码如下:

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()!大多数时候,您会想要在其主体中重新呈现一个 FeedbackPanel。但是即使打印一些东西到 stderr 也会让你省去很多麻烦!