2012-01-09 56 views
1

我正在爲我的web服務開發一個檢票客戶端。Wicket的奇怪行爲TextField

在我的第一步與檢票口,我注意到一個奇怪的行爲。我在那裏我輸入用戶名的一種形式:

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

} 

} 

當我在表單中輸入測試控制檯說「奇怪」。

它有什麼不對?

+0

你必須檢查字符串與'equals'法,如果你想查詢的內容的平等。另見[here](http://www.leepoint.net/notes-java/data/expressions/22compareobjects.html) – rotsch 2012-01-09 22:53:08

回答

3

請記住,在Java中檢查字符串是否相等應使用String.equals()方法。當兩個操作數是相同的實例時,使用==將僅返回true

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

這個問題可能對你有用:How do I compare strings in Java?

+0

愚蠢的初學者錯誤。非常感謝! – user1090145 2012-01-10 08:47:34