我正在为我的网络服务开发一个 wicket 客户端。
在我使用 wicket 的第一步中,我注意到了一个奇怪的行为。我有一个表格,我可以在其中输入用户名:
<form wicket:id="registerForm">
User Name <input type="text" wicket:id="userId"/><br/>
<input type="submit" value="Register"/>
</form>
我的提交看起来像这样:
private TextField userIdField;
private Form form;
public Register() {
userIdField = new TextField("userId", new Model(""));
form = new RegisterForm("registerForm");
form.add(userIdField);
add(form);
}
class RegisterForm extends Form {
public RegisterForm(String id) {
super(id);
}
@Override
public void onSubmit() {
String userId = Register.this.getUserId();
if(userId == "test") {
System.out.println("normal");
}
else {
System.out.println("strange");
}
}
}
protected String getUserId() {
return userIdField.getDefaultModelObjectAsString();
}
}
当我在表单中输入测试时,控制台显示“奇怪”。
有什么问题吗?
最佳答案
请记住,在 Java 中检查字符串是否相等应使用 String.equals()
方法。使用 ==
只会在两个操作数是同一实例时返回 true
。
if (userId.equals("test")) {
System.out.println("normal");
}
这个问题可能对你有用:How do I compare strings in Java?
关于java - Wicket 口 TextField 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8793402/