实体类定义:
public class Pagenums {
private String role;
private String value;
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
转换器定义:
public class PagenumsConverter implements Converter {
public boolean canConvert(Class type) {
// TODO Auto-generated method stub
return AgrPagenums.class.equals(type);
}
public void marshal(Object arg0, HierarchicalStreamWriter arg1, MarshallingContext arg2) {
// TODO Auto-generated method stub
}
public Object unmarshal(HierarchicalStreamReader reader,UnmarshallingContext context) {
AgrPagenums pagenums = new AgrPagenums();
if (reader.getAttributeCount() > 0) {
pagenums.setRole(reader.getAttribute("role"));
}
pagenums.setValue(reader.getValue());
while (reader.hasMoreChildren()) {
throw new ConversionException("cause message :"+ reader.getNodeName());
}
return pagenums;
}
}
xml中对应实体类的文本标签:
################
<pagenums role="pdfpage">79</pagenums>
<pagenums role="bookpage">71</pagenums>
################
说明:转换类中获取标签属性role值和获取标签值的代码不能交换位置否则role的值获取不到。