2012-01-09 2 views
1

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

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

  <form wicket:id="registerForm"> 
      User Name <input type="text" wicket:id="userId"/><br/> 
      <input type="submit" value="Register"/> 
     </form> 

Моя Submit для этого выглядит как:

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

} 

} 

Когда я вхожу тест в моей форме консоли говорит «странно».

Что не так?

+0

Вы должны проверить строки с 'equals'-методом, если вы хотите, чтобы проверить равенство содержания. См. Также [здесь] (http://www.leepoint.net/notes-java/data/expressions/22compareobjects.html) – rotsch

ответ

3

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

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

Этот вопрос может быть полезным для вас: How do I compare strings in Java?

+0

Глупые ошибки начинающих. Большое спасибо! – user1090145

Смежные вопросы