2012-01-09 3 views
1

私は自分のwebサービス用のwicketクライアントを開発しています。wicketの奇妙な動作TextField

私はウィケットで私の最初のステップで私は奇妙な動作に気づいた。私は私の形でテストを入力すると、コンソールは「奇妙な」と言う

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

} 

} 

:これがどのように見えるため

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

提出マイ:私は、私は、ユーザー名を入力するフォームがあります。

何が問題なのですか?

+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