확장자에 따라 .json이면 json Type 리턴 .xml이면 xml Type리턴 하고 싶습니다.
- 작성자 :
- 정*창
- 작성일 :
- 2015-02-24 20:07:13
- 조회수 :
- 1,112
- 구분 :
- 기타
- 진행상태 :
- 완료
Q
설정 및 코딩은 첨부파일처럼했습니다.
전자정부 프레임워크에서 나온 가이드처럼 한것 같은데
이상하게 xml리턴을 못해주네요.
결과는 아래와 같습니다.
.json형태는 리턴을 잘 해줍니다.
http://localhost:8080/openapi/parent.json
==========================================
{
resultCode: "0000",
parentList: [
{
mail: "a@a.com",
pw: "1111",
registrationId: ""
},
{
mail: "aa@a.com",
pw: "1111",
registrationId: ""
}
],
resultMessage: "SUCCESS",
searchVO: {
mail: null,
pw: null,
registration_id: null
}
}
http://localhost:8080/openapi/parent.xml
==========================================
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<fields/>
다른 방법으로도 해봤습니다.
그런데두 결과는 위와 같습니다.
설정에 문제는 아닌것 같고 다른데 문제인것 같은데 조언 부탁드립니다.
제발요.....
문제 해결이 어렵습니다. ㅠ.ㅠ
dispatcher-servlet.xml
==============================================
<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
<property name="marshaller">
<bean class="org.springframework.oxm.xstream.XStreamMarshaller">
<property name="autodetectAnnotations" value="true"/>
<property name="supportedClasses">
<list>
<value>java.util.List</value>
<value>kr.co.service.ParentVO</value>
</list>
</property>
</bean>
</property>
</bean>
ParentVO
==============================================
@XStreamAlias("parentVO")
public class ParentVO implements Serializable {
전자정부 프레임워크에서 나온 가이드처럼 한것 같은데
이상하게 xml리턴을 못해주네요.
결과는 아래와 같습니다.
.json형태는 리턴을 잘 해줍니다.
http://localhost:8080/openapi/parent.json
==========================================
{
resultCode: "0000",
parentList: [
{
mail: "a@a.com",
pw: "1111",
registrationId: ""
},
{
mail: "aa@a.com",
pw: "1111",
registrationId: ""
}
],
resultMessage: "SUCCESS",
searchVO: {
mail: null,
pw: null,
registration_id: null
}
}
http://localhost:8080/openapi/parent.xml
==========================================
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<fields/>
다른 방법으로도 해봤습니다.
그런데두 결과는 위와 같습니다.
설정에 문제는 아닌것 같고 다른데 문제인것 같은데 조언 부탁드립니다.
제발요.....
문제 해결이 어렵습니다. ㅠ.ㅠ
dispatcher-servlet.xml
==============================================
<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
<property name="marshaller">
<bean class="org.springframework.oxm.xstream.XStreamMarshaller">
<property name="autodetectAnnotations" value="true"/>
<property name="supportedClasses">
<list>
<value>java.util.List</value>
<value>kr.co.service.ParentVO</value>
</list>
</property>
</bean>
</property>
</bean>
ParentVO
==============================================
@XStreamAlias("parentVO")
public class ParentVO implements Serializable {
첨부파일
A
안녕하세요. 정영창님.
XML로 바인딩될 객체를 모델에 직접 넣으시거나, 모델에 넣으신 List 객체에 대하여 바인딩될 별도의 객체를 지정하셔야 할 것 같습니다.
현재 모델에 3개의 객체(List<ParentVO) 1개, String 2개)를 넣으셨는데,
이 3개의 객체를 포함하는 하나의 객체를 정의하시고 그 객체에 @XmlElement를 처리하시는 방법으로 변경하신 후에, 모델에는 해당 객체 하나를 넣으시면 되실 것 같습니다.
eg)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "root")
public class XmlData {
@XmlElement(name = "items")
private List<xmlchilddata> items;
public List<xmlchilddata> getItems() {
return items;
}
public void setItems(List<xmlchilddata> items) {
this.items = items;
}
}
...
XmlAccessorType(XmlAccessType.FIELD)
public class XmlChildData {
@XmlElement(name = "email")
private String email;
@XmlElement(name = "name")
private String name;
...
그럼, 즐거운 하루되십시오.
감사합니다.
XML로 바인딩될 객체를 모델에 직접 넣으시거나, 모델에 넣으신 List 객체에 대하여 바인딩될 별도의 객체를 지정하셔야 할 것 같습니다.
현재 모델에 3개의 객체(List<ParentVO) 1개, String 2개)를 넣으셨는데,
이 3개의 객체를 포함하는 하나의 객체를 정의하시고 그 객체에 @XmlElement를 처리하시는 방법으로 변경하신 후에, 모델에는 해당 객체 하나를 넣으시면 되실 것 같습니다.
eg)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "root")
public class XmlData {
@XmlElement(name = "items")
private List<xmlchilddata> items;
public List<xmlchilddata> getItems() {
return items;
}
public void setItems(List<xmlchilddata> items) {
this.items = items;
}
}
...
XmlAccessorType(XmlAccessType.FIELD)
public class XmlChildData {
@XmlElement(name = "email")
private String email;
@XmlElement(name = "name")
private String name;
...
그럼, 즐거운 하루되십시오.
감사합니다.