필자는 TextField에서 required가 true이고 Textfield에 null 값으로 제출할 때이 문제를 설명하기 위해 간단한 wicket 웹 응용 프로그램을 만듭니다. 피드백 패널 메시지 (이 소리 좋은)하지만 내 유스 케이스 모달 창에서 내 데이터를 가져올 및이 양식을 다시 보내려면 AjaxRequestTarget 수 없습니다 TextField 데이터를 업데이트하고 다른 textfield.i 아무것도 입력 할 수 없습니다. 해결할 수 없습니다 이 problem.please 도움 me.but 때 다시 웹 애플 리케이션을 실행하고 텍스트 필드에 내 데이터를 설정할 수있는 모달 창을 사용합니다.Wicket 1.4.9는 피드백 오류 후 모달에서 AjaxRequestTarget을 사용할 수 없습니다!
public class User implements Serializable {
private String username;
private String password;
public User(String username, String password){
this.username = username;
this.password = password;
}
public User() {
// TODO Auto-generated constructor stub
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
마이 페이지
public class FormPage extends WebPage{
private User user;
private ModalWindow modal;
private TestForm form;
public FormPage() {
user = new User();
modal = new ModalWindow("modal");
modal.setOutputMarkupId(true);
modal.setInitialHeight(300);
modal.setInitialWidth(300);
add(modal);
form = new TestForm("form");
add(form);
}
private class TestForm extends Form {
private FeedbackPanel feedback;
private TextField<String> username;
private AjaxLink popupButton;
private AjaxButton submitButton;
private TextField<String> password;
public TestForm(String id) {
super(id);
feedback = new FeedbackPanel("feedback");
feedback.setOutputMarkupId(true);
add(feedback);
username = new TextField<String>("username", new PropertyModel<String>(FormPage.this, "user.username"));
username.setOutputMarkupId(true);
username.setRequired(true);
add(username);
password = new TextField<String>("password", new PropertyModel<String>(FormPage.this, "user.password"));
password.setOutputMarkupId(true);
password.setRequired(true);
add(password);
popupButton = new AjaxLink("popupButton") {
@Override
public void onClick(AjaxRequestTarget target) {
UserPopup popup = new UserPopup(modal.getContentId()) {
@Override
public void onSuccess(AjaxRequestTarget target, User user) {
FormPage.this.user = user;
target.addComponent(username);
target.addComponent(password);
modal.close(target);
}
};
modal.setContent(popup);
modal.show(target);
}
};
add(popupButton);
submitButton = new AjaxButton("submitButton", this) {
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
// TODO Auto-generated method stub
}
@Override
protected void onError(AjaxRequestTarget target, Form<?> form) {
target.addComponent(feedback);
}
};
add(submitButton);
}
}
}
내 팝업 :
public abstract class UserPopup extends Panel{
private User user;
public UserPopup(String id) {
super(id);
user = new User("name","pass");
add(new AjaxLink("userLink"){
@Override
public void onClick(AjaxRequestTarget target) {
onSuccess(target, user);
}
});
}
public abstract void onSuccess(AjaxRequestTarget target,User user);
이
내 샘플 코드사용자 엔티티입니다
}