聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> castor处理类之间组合关系的问题

castor处理类之间组合关系的问题

时间:2012-08-30 00:29:57    下载该word文档

最近项目中使用castor进行JAVA对象和XML之间的转换时,出现了一个问题。

3个需要映射的bean如下:

Java代码

1 package model;

2

3 public class InformConfig {

4

5 private Inform inform;

6 private EmailServer emailServer;

7 public Inform getInform() {

8 return inform;

9 }

10 public void setInform(Inform inform) {

11 this.inform = inform;

12 }

13 public EmailServer getEmailServer() {

14 return emailServer;

15 }

16 public void setEmailServer(EmailServer emailServer) {

17 this.emailServer = emailServer;

18 }

19

20 }


Java代码

21 package model;

22

23 public class EmailServer {

24

25 private String pop3;

26 private String smtp;

27 private String name;

28 private String password;

29 public String getPop3() {

30 return pop3;

31 }

32 public void setPop3(String pop3) {

33 this.pop3 = pop3;

34 }

35 public String getSmtp() {

36 return smtp;

37 }

38 public void setSmtp(String smtp) {

39 this.smtp = smtp;

40 }

41 public String getName() {

42 return name;

43 }

44 public void setName(String name) {

45 this.name = name;

46 }

47 public String getPassword() {

48 return password;

49 }

50 public void setPassword(String password) {

51 this.password = password;

52 }

53

54

55

56 }

Java代码

57 package model;

58

59 public class Inform {

60

61 private String smsContent;

62 private String emailContent;

63 private String smsDest;

64 private String emailDest;

65

66 public String getSmsContent() {

67 return smsContent;

68 }

69 public void setSmsContent(String smsContent) {

70 this.smsContent = smsContent;

71 }

72 public String getEmailContent() {

73 return emailContent;

74 }

75 public void setEmailContent(String emailContent) {

76 this.emailContent = emailContent;

77 }

78 public String getSmsDest() {

79 return smsDest;

80 }

81 public void setSmsDest(String smsDest) {

82 this.smsDest = smsDest;

83 }

84 public String getEmailDest() {

85 return emailDest;

86 }

87 public void setEmailDest(String emailDest) {

88 this.emailDest = emailDest;

89 }

90

91

92

93 }



规则文件mapping.xml配置:

Java代码

94

95

96 "-//EXOLAB/Castor Mapping DTD Version 1.0//EN"

97 "http://castor.exolab.org/mapping.dtd">

98

99 inform mapping example

100

101 <class name="model.InformConfig" auto-complete="true">

102

103

104

105

106

107

108

109 class>

110

111 <class name="model.Inform">

112

113

114

115

116

117

118

119

120

121

122

123

124 class>

125

126 <class name="model.EmailServer">

127

128

129

130

131

132

133

134

135

136

137

138

139 class>

140

141




测试编组的代码如下:

Java代码

142 Inform inform = new Inform();

143 inform.setEmailContent("email content");

144 inform.setSmsContent("sms content");

145 inform.setEmailDest("fw@163.com");

146 inform.setSmsDest("133********");

147 EmailServer emailServer = new EmailServer();

148 emailServer.setName("fw");

149 emailServer.setPassword("123");

150 emailServer.setPop3("163.pop3.com");

151 emailServer.setSmtp("163.smtp.com");

152 InformConfig informConfig = new InformConfig();

153 informConfig.setEmailServer(emailServer);

154 informConfig.setInform(inform);

155

156 Mapping map = new Mapping();

157 map.loadMapping("mapping.xml");

158 Marshaller ma = new Marshaller(new FileWriter("informConfig.xml"));

159 ma.setMapping(map);

160 ma.marshal(informConfig);



产生的informConfig.xml如下:

Java代码

161

162

163

164 sms content

165 email content

166 133********

167 fw@163.com

168

169

170 163.pop3.com

171 163.smtp.com

172 fw

173 123

174

175



以上均达到了我的要求,但是在解组时获得的InformConfig对象中的属性全部都是NULL,测试解组的代码如下

Java代码

176 Unmarshaller uma = new Unmarshaller(map);

177 //这里获得的InformConfig对象ic中的属性均为NULL

178 InformConfig ic =

179 (InformConfig) uma.unmarshal(InformConfig.class, new FileReader("informConfig.xml"));

免费下载 Word文档免费下载: castor处理类之间组合关系的问题

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服