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 では、文字列以外のオブジェクトは無視されます!