我试图按照本教程使用 Spring 框架创建我自己的宁静 Web 服务。客户端做一个 GET 请求,比方说
服务器返回对象教室的 xml 版本:
@XmlRootElement(name = "class")
public class Classroom {
private String classId = null;
private ArrayList<Student> students = null;
public Classroom() {
}
public String getClassId() {
return classId;
}
public void setClassId(String classId) {
this.classId = classId;
}
@XmlElement(name="student")
public ArrayList<Student> getStudents() {
return students;
}
public void setStudents(ArrayList<Student> students) {
this.students = students;
}
}
对象 Student 是另一个只包含字符串的 bean。
在我的 app-servlet.xml 中,我复制了以下几行:
<bean id="studentsView" class="org.springframework.web.servlet.view.xml.MarshallingView">
<constructor-arg ref="jaxbMarshaller" />
</bean>
<!-- JAXB2 marshaller. Automagically turns beans into xml -->
<bean id="jaxbMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound">
<list>
<value>com.spring.datasource.Classroom</value>
<value>com.spring.datasource.Student</value>
</list>
</property>
</bean>
现在我的问题是:如果我想插入一些非字符串对象作为类变量怎么办?假设我想要一个包含 InetAddress 的字符串版本的标签,例如
<inetAddress>192.168.1.1</inetAddress>
如何强制 JAXB 调用 inetAddress.toString() 方法,使其在 xml 中显示为字符串?在返回的 xml 中,非字符串对象被忽略!