使用 MVC Java 创建简单示例

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/13873847/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-31 14:15:50  来源:igfitidea点击:

Create example simple with MVC Java

javamodel-view-controller

提问by user1871578

I have a simple example to check login of user using MVC Model..

我有一个简单的例子来检查使用 MVC 模型的用户登录..

LoginModel:

登录模式:

public class LoginModel {
private String username;
private String password;

public LoginModel()
{        
}
/**
 * @return the username
 */
public String getUsername() {
    return username;
}
/**
 * @param username the username to set
 */
public void setUsername(String username) {
    this.username = username;
}
/**
 * @return the password
 */
public String getPassword() {
    return password;
}
/**
 * @param password the password to set
 */
public void setPassword(String password) {
    this.password = password;
}

}

}

LoginView:

登录查看:

public class LoginView {
LoginModel user;

//Ham khoi tao cho LoginView
public LoginView(LoginModel user)
{
  this.user=user;
}

public void showMessage(String msg)
{
  System.out.println(msg);
}

public void getUserInfo()
{
try
{

    DataInputStream input=new DataInputStream(System.in);
    System.out.println("Username:");
    user.setUsername(input.readUTF());
    System.out.println("Password:");
    user.setPassword(input.readUTF());
    input.close();
}
catch(IOException e)
{
    System.out.println(e);
}

} }

} }

LoginControl:

登录控件:

public class LoginControl {
LoginModel user;
LoginView view;

public LoginControl(LoginModel user,LoginView view)
{
    this.user=user;
    this.view=view;
    while(true)
    {
    view.getUserInfo();
    if(checkLogin())
    {
        view.showMessage("Success");
    }
    else
    {
        view.showMessage("Wrong username or password");
    }
    }
}

private boolean checkLogin()
{
    if((user.getUsername().equals("sa"))&&(user.getPassword().equals("sa")))
    {
        return true;
    }
    return false;
}

}

}

LoginMain:

登录主:

public class LoginMVC {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here
    LoginModel user=new LoginModel();
    LoginView view=new LoginView(user);
    LoginControl control=new LoginControl(user, view);
}

}

}

But when I run main class,It's only username: and input user and stop.. I don't known where is error. Can you help me.

但是当我运行主类时,它只是 username: 并输入用户并停止..我不知道错误在哪里。你能帮助我吗。

采纳答案by vels4j

I am not sure why DataInputStreamis not working, I suggest to use Scannerfor getting input from console in getUserInfomethod.

我不确定为什么DataInputStream不起作用,我建议使用ScannergetUserInfo方法中从控制台获取输入。

  Scanner scanner = new Scanner(System.in);
  System.out.println("Username:");
  user.setUsername(scanner.nextLine());
  System.out.println("Password:");
  user.setPassword(scanner.nextLine());
  scanner.close();