wicket TextField的奇怪行为

时间:2012-01-09 18:38:46

标签: java string wicket textfield tostring

我正在为我的网络服务开发一个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时,控制台会说“奇怪”。

它有什么不对吗?

1 个答案:

答案 0 :(得分:3)

请记住,检查Java中有关字符串的相等性应使用String.equals()方法。当两个操作数是同一个实例时,使用==只会返回true

if (userId.equals("test")) {
    System.out.println("normal");
}

这个问题可能对您有用:How do I compare strings in Java?