[SPRING] 봄에 jaxb에서 형식화 된 xml 출력을 얻으려면 어떻게해야합니까?
SPRING봄에 jaxb에서 형식화 된 xml 출력을 얻으려면 어떻게해야합니까?
Jaxb2Marshaller를 ContentNegotiatingViewResolver의 뷰 속성으로 사용하고 있습니다. xml repsonse를 얻을 수 있습니다. 어떻게 포맷팅 (예쁜 인쇄)합니까?
<bean
class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="mediaTypes">
<map>
<entry key="xml" value="application/xml" />
</map>
</property>
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
<constructor-arg>
<bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound">
<list>
</list>
</property>
</bean>
</constructor-arg>
</bean>
</list>
</property>
</bean>
해결법
-
==============================
1.
<bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller"> <property name="classesToBeBound"> <list> .... </list> </property> <property name="marshallerProperties"> <map> <entry> <key> <util:constant static-field="javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT" /> </key> <value type="java.lang.Boolean">true</value> </entry> </map> </property> </bean>
-
==============================
2.marshaller 객체에서이 속성을 설정해보십시오.
marshaller 객체에서이 속성을 설정해보십시오.
marshaller.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE )
Marshaller 인터페이스를위한 전체 Javadoc이 있습니다. 필드 요약 섹션을 확인하십시오.
-
==============================
3.Ritesh의 대답은 나를 위해 작동하지 않았다. 나는 다음을해야했다.
Ritesh의 대답은 나를 위해 작동하지 않았다. 나는 다음을해야했다.
<bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller"> <property name="classesToBeBound"> <list> ... </list> </property> <property name="marshallerProperties"> <map> <entry key="jaxb.formatted.output"> <value type="boolean">true</value> </entry> </map> </property> </bean>
-
==============================
4.이걸 찾고 있었고 코드를 공유 할 줄 알았어.
이걸 찾고 있었고 코드를 공유 할 줄 알았어.
@Bean public Marshaller jaxbMarshaller() { Map<String, Object> props = new HashMap<String, Object>(); props.put(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); Jaxb2Marshaller m = new Jaxb2Marshaller(); m.setMarshallerProperties(props); m.setPackagesToScan("com.example.xml"); return m; }
-
==============================
5.javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT 대신에 jaxb.formatted.output를 다음과 같이 사용하십시오.
javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT 대신에 jaxb.formatted.output를 다음과 같이 사용하십시오.
Map<String,Object> map = new HashMap<String,Object>(); map.put("jaxb.formatted.output", true); jaxb2Marshaller.setMarshallerProperties(map);
from https://stackoverflow.com/questions/4882988/how-to-get-formatted-xml-output-from-jaxb-in-spring by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] IntelliJ IDEA에서 Spring 패싯을 구성하는 방법 (0) | 2019.03.18 |
---|---|
[SPRING] Jackson을 사용하여 JSON으로 맵 변환 (0) | 2019.03.18 |
[SPRING] 스프링에서 freemarker 템플릿으로 요청 문맥을 얻는 법 (0) | 2019.03.18 |
[SPRING] Spring MVC Form tags : "No selection"항목을 추가하는 표준 방법이 있습니까? (0) | 2019.03.18 |
[SPRING] @Configuration 클래스에서 @PostConstruct의 예상되는 동작은 무엇입니까? (0) | 2019.03.18 |