Java 如何在springMVC(RESTfulWebService)中格式化xml而不是原始格式
目前,我想返回返回xml结果,返回的xml格式如下: 我试着用这样的东西Java 如何在springMVC(RESTfulWebService)中格式化xml而不是原始格式,java,xml,web-services,spring-mvc,Java,Xml,Web Services,Spring Mvc,目前,我想返回返回xml结果,返回的xml格式如下: 我试着用这样的东西 @XmlRootElement(name = "item") public class Book implements Serializable { @XmlAttribute public int getBookId() { return bookId; } 。。。。 及 @XmlRootElement(name=“OneBoxResults”) 公共类JavaClazz{ 私有列
@XmlRootElement(name = "item")
public class Book implements Serializable {
@XmlAttribute
public int getBookId() {
return bookId;
}
。。。。
及
@XmlRootElement(name=“OneBoxResults”)
公共类JavaClazz{
私有列表OneBoxResults;
公共列表getOneBoxResults(){
返回OneBoxResults;
}
@xmlements(@xmlement(name=“book”,type=book.class))
public void setOneBoxResults(列出oneBoxResults){
OneBoxResults=OneBoxResults;
}
...
但是,我收到的返回结果只是Json格式,如下所示:
@RequestMapping(value = "/rest.oneboxSample",produces = MediaType.APPLICATION_XML_VALUE, method = RequestMethod.GET)
public @ResponseBody String oneboxSample(){
String tmpOpenField = "<Field name=\"";
String tmpCloseField = "</Field>";
StringBuilder builder = new StringBuilder();
builder.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
builder.append("<OneBoxResults>").append("<resultCode>");
builder.append("Listbook").append("<resultCode>");
for(int i = 0; i < bookDao.getBooks().size(); i++){
Book tmpBook = bookDao.getBooks().get(i);
builder.append("<MODULE_RESULT>");
builder.append(tmpOpenField).append("bookId\">").append(tmpBook.getBookId()).append(tmpCloseField);
builder.append(tmpOpenField).append("bookName\">").append(tmpBook.getBookName()).append(tmpCloseField);
builder.append(tmpOpenField).append("update\">").append(tmpBook.getUpdate()).append(tmpCloseField);
builder.append(tmpOpenField).append("description\">").append(tmpBook.getDescription()).append(tmpCloseField);
builder.append(tmpOpenField).append("path\">").append(tmpBook.getPath()).append(tmpCloseField);
builder.append("</MODULE_RESULT>");
}
builder.append("</OneBoxResults>");
return builder.toString();
}
{“oneBoxResults”:[{“bookId”:1,“bookName”:“搜索”
部署“,”更新“:”2014-01-07“,”说明“:”成功部署
通常包括以下内容
元素:,“路径”:null},{“bookId”:2,“bookName”:“GSA”
信息“,”更新“:”2015-01-07“,”说明“:”配置OneBox
模块,以便将搜索查询发送给提供商(自定义
应用程序“,”路径“:null}]}
我还尝试在控制器中创建新格式,如下所示:
@RequestMapping(value = "/rest.oneboxSample",produces = MediaType.APPLICATION_XML_VALUE, method = RequestMethod.GET)
public @ResponseBody String oneboxSample(){
String tmpOpenField = "<Field name=\"";
String tmpCloseField = "</Field>";
StringBuilder builder = new StringBuilder();
builder.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
builder.append("<OneBoxResults>").append("<resultCode>");
builder.append("Listbook").append("<resultCode>");
for(int i = 0; i < bookDao.getBooks().size(); i++){
Book tmpBook = bookDao.getBooks().get(i);
builder.append("<MODULE_RESULT>");
builder.append(tmpOpenField).append("bookId\">").append(tmpBook.getBookId()).append(tmpCloseField);
builder.append(tmpOpenField).append("bookName\">").append(tmpBook.getBookName()).append(tmpCloseField);
builder.append(tmpOpenField).append("update\">").append(tmpBook.getUpdate()).append(tmpCloseField);
builder.append(tmpOpenField).append("description\">").append(tmpBook.getDescription()).append(tmpCloseField);
builder.append(tmpOpenField).append("path\">").append(tmpBook.getPath()).append(tmpCloseField);
builder.append("</MODULE_RESULT>");
}
builder.append("</OneBoxResults>");
return builder.toString();
}
@RequestMapping(value=“/rest.oneboxSample”,products=MediaType.APPLICATION\u XML\u value,method=RequestMethod.GET)
public@ResponseBody字符串oneboxSample(){
字符串tmpOpenField=“”).append(tmpBook.getBookId()).append(tmpCloseField);
append(tmpOpenField).append(“bookName\”>).append(tmpBook.getBookName()).append(tmpCloseField);
append(tmpOpenField).append(“更新\“>”).append(tmpBook.getUpdate()).append(tmpCloseField);
append(tmpOpenField).append(“description\”>).append(tmpBook.getDescription()).append(tmpCloseField);
append(tmpOpenField).append(“path\”>).append(tmpBook.getPath()).append(tmpCloseField);
生成器。追加(“”);
}
生成器。追加(“”);
返回builder.toString();
}
但结果并不好。它返回一个字符串,而不是我们需要的xml格式
现在,我们的系统需要接收xml格式,而不是原始的xml格式。
请告诉我怎么做
下面是我写的源代码
谢谢,我们需要了解您的Spring配置。特别是,如果您没有使用SpringBoot,您可能忘记注册XML消息转换器。我感谢你在这件事上的帮助。谢谢