我试图在基于MVC的swing应用程序中从Controller.java中取出当前登录的用户。用户存储在txt文件中(int id,String name,String address,boolean isAdmin)
在控制器中创建了一个方法
public void addListeners(){
loginListener=new ActionListener(){
public void actionPerformed(ActionEvent e){
String username=view.getLogin().getLoginUsername().getText();
char[] password = view.getLogin().getLoginPassword().getPassword();
String pass="";
for(int i=0;i<password.length;i++){
pass+=password[i];
}
System.out.println("Username "+username+",password "+pass);
boolean correctUser=false;
boolean admin=false;
for(User user : model.getShop().getUsers()){
if(username.equals(user.getUsername()) && pass.equals(user.getPassword())){
correctUser=true;
admin=user.isAdmin();
break;
}
}
if(correctUser){
view.changeToMaineMenu();
view.getMainmenu().addTabs(admin);
}
else
System.out.println("Not a valid user");
view.getLogin().getLoginUsername().setText("");
view.getLogin().getLoginPassword().setText("");
viewSuppliers();
}
};
我想创建特殊的用户操作取决于谁被记录:用户或管理员即。仅为管理员创建新客户。
我不知道如何访问它。任何帮助高度赞赏。
在摇摆中以mvc存储已记录用户的推荐方法是什么?
答案 0 :(得分:2)
我想创建特殊的用户操作取决于谁被记录:user或admin ie。仅为管理员创建新客户。
我认为Singleton pattern中举例说明this answer可能会帮助您将登录用户保持为“全局”状态。然后,您可以询问用户的角色(管理员或简单用户),以便添加您需要的特殊操作。
我开始将所有用户数据包装在域类(简单POJO)中,然后实现SessionManager
。