У меня есть страница с формой в Wicket, где для работы требуется форма соавтор. Соавтор вводится (для чего я использую Guice) и выглядит примерно так:
public class RegistrationPage extends WebPage {
@Inject
public RegistrationPage(RegistrationService service) {
this.service = service;
add(new RegistrationForm());
}
private class RegistrationForm extends Form {
public RegistrationForm() {
// setup
}
protected void onSubmit() {
service.doSomething();
}
}
}
Мне не нравится идея, что RegistrationService внедряется в RegistrationPage, когда это требуется только для RegistrationForm. Я мог бы изменить Регистрационную форму, чтобы получить Службу регистрации:
public RegistrationForm(RegistrationService service) {
this.service = service;
}
и удалите поле из RegistrationPage, но RegistrationPage по-прежнему используется для сквозного доступа.
Полагаю, я спрашиваю, каков лучший метод для этого? Это нормально, или, возможно, было бы лучше добавить саму RegistrationForm на страницу:
public class RegistrationPage extends WebPage {
@Inject
public RegistrationPage(RegistrationForm form) {
add(form);
}
}
---
private class RegistrationForm extends Form {
private RegistrationService service;
@Inject
public RegistrationForm(RegistrationService service) {
this.service = service;
}
protected void onSubmit() {
service.doSomething();
}
}
Я бы предпочел это, так как мне бы хотелось, чтобы RegistrationForm находился в отдельном классе / файле. Я совершенно новичок в Wicket, поэтому не уверен, что это за норма - может кто-нибудь показать мне путеводный свет? :)