我正在为我的网络服务开发一个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();
}
}
当我在表单中输入test时,控制台会说“奇怪”。
它有什么不对吗?
答案 0 :(得分:3)
请记住,检查Java中有关字符串的相等性应使用String.equals()
方法。当两个操作数是同一个实例时,使用==
只会返回true
。
if (userId.equals("test")) {
System.out.println("normal");
}
这个问题可能对您有用:How do I compare strings in Java?