Struts2版本:2.5.20
actionDemo.ActionDemo4类:
1 public class ActionDemo4 { 2 3 private String id; 4 private String username; 5 private String password; 6 private String desc; 7 private boolean allowed; 8 private String[] hobbies; 9 private String sex; 10 private Province province; 11 private String city; 12 13 public String getId() { 14 return id; 15 } 16 17 public void setId(String id) { 18 this.id = id; 19 } 20 21 public String getUsername() { 22 return username; 23 } 24 25 public void setUsername(String username) { 26 this.username = username; 27 } 28 29 public String getPassword() { 30 return password; 31 } 32 33 public void setPassword(String password) { 34 this.password = password; 35 } 36 37 public String getDesc() { 38 return desc; 39 } 40 41 public void setDesc(String desc) { 42 this.desc = desc; 43 } 44 45 public boolean isAllowed() { 46 return allowed; 47 } 48 49 public void setAllowed(boolean allowed) { 50 this.allowed = allowed; 51 } 52 53 public String[] getHobbies() { 54 return hobbies; 55 } 56 57 public void setHobbies(String[] hobbies) { 58 this.hobbies = hobbies; 59 } 60 61 public String getSex() { 62 return sex; 63 } 64 65 public void setSex(String sex) { 66 this.sex = sex; 67 } 68 69 public Province getProvince() { 70 return province; 71 } 72 73 public void setProvince(Province province) { 74 this.province = province; 75 } 76 77 public String getCity() { 78 return city; 79 } 80 81 public void setCity(String city) { 82 this.city = city; 83 } 84 85 @Override 86 public String toString() { 87 return "ActionDemo4 [id=" + id + ", username=" + username + ", password=" + password + ", desc=" + desc 88 + ", allowed=" + allowed + ", hobbies=" + Arrays.toString(hobbies) + ", sex=" + sex + ", province=" 89 + province + ", city=" + city + "]"; 90 } 91 92 public String testTag() { 93 System.out.println(this); 94 return "success"; 95 } 96 }
actionDemo.Province类:
1 public class Province { 2 3 private String provinceId; 4 private String provinceName; 5 6 public Province() { 7 provinceName = "--请选择省份--"; 8 } 9 10 public Province(String provinceId, String provinceName) { 11 this.provinceId = provinceId; 12 this.provinceName = provinceName; 13 } 14 15 public String getProvinceId() { 16 return provinceId; 17 } 18 public void setProvinceId(String provinceId) { 19 this.provinceId = provinceId; 20 } 21 22 public String getProvinceName() { 23 return provinceName; 24 } 25 public void setProvinceName(String provinceName) { 26 this.provinceName = provinceName; 27 } 28 29 @Override 30 public String toString() { 31 return provinceName; 32 } 33 34 public static List<Province> provinces() { 35 List<Province> provinces = new ArrayList<Province>(); 36 provinces.add(new Province("gd", "广东")); 37 provinces.add(new Province("fz", "福建")); 38 return provinces; 39 } 40 41 public static Province getProvince(String provinceId) { 42 List<Province> provinces = provinces(); 43 for (Province province : provinces) 44 if (province.provinceId != null && province.provinceId.equals(provinceId)) 45 return province; 46 return new Province(); 47 } 48 }
类型转换器actionDemo.ProvinceConverter类:
1 public class ProvinceConverter extends StrutsTypeConverter { 2 3 @SuppressWarnings("rawtypes") 4 @Override 5 public Object convertFromString(Map context, String[] values, Class toClass) { 6 if (toClass == Province.class) 7 if (values != null && values.length > 0) { 8 String value = values[0]; 9 return Province.getProvince(value); 10 } 11 return values; 12 } 13 14 @SuppressWarnings("rawtypes") 15 @Override 16 public String convertToString(Map context, Object o) { 17 if (o instanceof Province) 18 return ((Province) o).getProvinceId(); 19 return null; 20 } 21 22 }
配置文件actionDemo.ActionDemo4-conversion.properties:
province=actionDemo.ProvinceConverter
出现的问题是:
获取province属性时会调用converFromString()方法。(这个应该证明我的配置文件没有错)
然而回显的时候没有调用converToString()方法。这是为什么?
求助!!!哪位大佬来995