【问题标题】:Jersey XML indentation泽西 XML 缩进
【发布时间】:2014-11-06 19:09:50
【问题描述】:

我有以下代码:

@Path("/search")
public class SearchRestlet
        extends BaseRestlet
{

    @GET
    @Produces({ MediaType.APPLICATION_XML,
                MediaType.APPLICATION_JSON,
                MediaType.TEXT_PLAIN })
    public SearchResult search(...)
            throws IOException, ParseException
    {
        final SearchRequest searchRequest = new SearchRequest(...);
        final SearchResult result = searchService.search(searchRequest);

        return result;
    }

}

这是我的JAXB 映射对象:

@XmlRootElement(name = "result")
@XmlAccessorType(XmlAccessType.FIELD)
public class SearchResult
{

    @XmlElement
    private String id;

    ...

}

这是我得到的输出:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><result><id>foo</id></result>

这是我想要得到的输出:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<result>
    <id>foo</id>
</result>

如果我直接使用编组器,我知道我可以为此设置一个属性并且它应该可以工作。根据上面的示例,如何在 Jersey 的上下文中完成此操作?

【问题讨论】:

    标签: java jaxb2 jersey-2.0


    【解决方案1】:

    将以下内容添加到您的 web.xml 部署描述符中:

    <init-param>
        <param-name>jersey.config.xml.formatOutput</param-name>
        <param-value>true</param-value>
    </init-param>
    

    更多详情,请查看MessageProperties.XML_FORMAT_OUTPUT

    【讨论】:

    • 非常感谢!这有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 2012-07-20
    • 2013-07-21
    • 2017-01-26
    相关资源
    最近更新 更多