0
私のログインページでは、キープレスイベントをパスワードtextfieldでバインドしようとしています。私はイベントリスナーを起動することができました。しかし、私が直面している問題は、テキストフィールドユーザー名の値がnullを返すことですが、パスワードフィールドの値はnullではありません。コードは以下のとおりである:Enter form on submit - テキストフィールド値がNullです
public class LoginForm extends Form<Void> {
private transient final ValueMap properties = new ValueMap();
public LoginForm(final String formId) {
super(formId);
final TextField<String> username = new TextField<String>("username", new PropertyModel<String>(getProperties(), "username"));
add(username);
final TextField<String> password = new TextField<String>("password", new PropertyModel<String>(getProperties(), "password"));
add(password);
password.add(new AjaxFormComponentUpdatingBehavior("onkeypress") {
@Override
protected void onComponentTag(ComponentTag tag) {
Component component = getComponent();
if (component.isEnabled() && component.isEnableAllowed()) {
CharSequence handler = generateCallbackScript(new AppendingStringBuffer("wicketAjaxPost('").append(getCallbackUrl()).append("', wicketSerialize(Wicket.$('" + getComponent().getMarkupId() + "'))"));
String event = "if (event.keyCode == 13) {" + handler.toString() + "};";
tag.put("onkeypress", event);
}
}
@Override
protected void onUpdate(AjaxRequestTarget target) {
System.out.println(getUsername());
System.out.println(getPassword());
}
});
}
public ValueMap getProperties() {
return properties;
}
private String getPassword() {
return getProperties().getString("username");
}
private String getUsername() {
return getProperties().getString("password");
}
}
system.out
が
null
password
印刷される私はまたusername.getDefaultModelObject()
を使用しようとしたが、それはまた、NULLを返しています。
すべての情報は私にとって非常に役立ちます。
ありがとうございました。