私は 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();
}
}
}
RegistrationForm だけが必要な場合に、RegistrationService が RegistrationPage に挿入されるという考えは好きではありません。RegistrationForm を変更して、RegistrationService を受け取ることができます。
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 にまったく慣れていないので、標準が何であるかがわかりません。誰かが私に導きの光を見せてくれませんか? :)