为什么我的代码中没有调用 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 也会让你省去很多麻烦!
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 也会让你省去很多麻烦!