【问题标题】:Strange behaviour of wicket TextFieldwicket TextField 的奇怪行为
【发布时间】:2012-01-09 18:38:45
【问题描述】:

我正在为我的网络服务开发一个检票口客户端。

在我使用 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();

}

}

当我在表单中输入测试时,控制台显示“奇怪”。

这有什么问题?

【问题讨论】:

  • 如果你想检查内容的相等性,你必须用equals-方法检查字符串。另见here

标签: java string wicket textfield tostring


【解决方案1】:

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

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

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

【讨论】:

  • 愚蠢的初学者错误。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多