【问题标题】:Can't compare Strings无法比较字符串
【发布时间】:2019-11-02 13:24:52
【问题描述】:

我无法将从 student.getUsername() 返回的字符串与硬编码字符串进行比较(即使是正确的值也总是错误的) 但是当我使用普通字符串而不是从 student.getUsername() 返回的字符串时,它能够执行 if block 并返回“登录成功”。我认为从 student.getUsername() 返回的值无法与 String 我什至尝试过 .toString() 但没有运气请帮助。

 @PostMapping()
       public String setUser(@Valid @ModelAttribute("Student")Student student, Errors errors, 
          ModelMap model) {

            String user = "das";
            String pass  = "12345";

            if((student.getUsername()==user)&&(student.getPassword()==pass))return "loginSuccess";
            else return "loginFailure"

【问题讨论】:

    标签: spring string spring-mvc web-applications


    【解决方案1】:

    你应该使用 equals() 方法来比较字符串的内容。 Java 中的 == 运算符比较对象的地址而不是其内容:

    【讨论】: