Странное поведение калитки TextField - PullRequest
1 голос
/ 09 января 2012

Я разрабатываю клиент калитки для своего веб-сервиса.

На первых шагах с калиткой я заметил странное поведение.У меня есть форма, в которой я ввожу имя пользователя:

         <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();

}

}

Когда я ввожу тест в моей форме, консоль говорит "странно".

Что с ним не так?

1 Ответ

3 голосов
/ 10 января 2012

Помните, что для проверки на равенство в Java относительно строк следует использовать метод String.equals(). Использование == вернет true только тогда, когда оба операнда являются одним и тем же экземпляром.

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

Этот вопрос может быть полезен для вас: Как сравнить строки в Java?

...