想问下private Map<String, javabean> user;

public void setUser(Map<String, javabean> user) { this.user = user; }
public Map<String, javabean> getUser() { return this.user; }
public void validate() {
if(getUser().get("one").getUserName() == null  ||   getUser().get("one").getUserName().equals(""))
addFieldError(getUser().get("one").userName, "user.required");
if(getUser().get("one").getUserPass() == null  ||  getUser().get("one").getUserPass().equals(""))
addFieldError(getUser().get("one").userPass, "pass.required");

if(getUser().get("two").getUserName() == null  ||  getUser().get("two").getUserName().equals(""))
addFieldError(getUser().get("two").userName, "user.required");
if(getUser().get("two").getUserPass() == null  ||  getUser().get("two").getUserPass().equals(""))
addFieldError(getUser().get("two").userPass, "pass.required");
}上面部分代码中为什么红色部分只能为"one"或"two",不能为0或1,若用0或1代替后运行会发生错误

解决方案 »

  1.   

    你的getUser()返回的是个Map,Map是个很单纯的东西,你设置的时候是啥,取的时候就得是啥。所以关键是你当时设置进去的时候是 getUset().put("one" , xxoo);所以get也只能是"one"
      

  2.   


    如楼上说的、   Map 是一个key 对应 一个value    
     你的key存了什么     get就只能从key中取value
    你没存key为 "0"或"1"  当然取不到值、
      

  3.   

    楼上正解,不像list似的,get(0)取第一个值,map就是取key,key是啥就写啥
      

  4.   

    "one"或"two"是Map中的key。要取到key才能取到值!!