BufferedHttpServletResponse bufferedHttpServletResponse = new BufferedHttpServletResponse(response);
request.getRequestDispatcher(jspPage).forward(request, bufferedHttpServletResponse);
String xmlData = bufferedHttpServletResponse.getData();
这就是我与 modelAndView
一起使用的 anyChart
组件需要 XML 文件中的数据,该文件应该动态生成,但它表示响应已提交。
最佳答案
您可以使用Servlet
并直接打印出答案:
public void service(ServletRequest request, ServletResponse response){
response.setContentType("text/xml;charset=UTF-8");
PrintWriter writer = response.getWriter();
writer.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
writer.append("<result>");
// print your result
writer.append("</result>");
它不是来自 JSP 内部,但看起来几乎就像您已经在 Servlet
中一样。 .
如果您正在使用 Spring Web MVC,那么您对 modelAndView 的引用表明,您可能只想在 Controller 中使用 @ResponseBody
的方法。返回类型上的注释。
@RequestMapping(value = "/xmlresponse", method = RequestMethod.GET)
public @ResponseBody ResultObjectWithJaxbAnnotations gernerateXmlResult() {
别忘了<mvc:annotation-driven />
在您的 Spring 应用程序上下文中 - 但您很可能已经拥有了。
关于java - 我如何获取 xml 文件作为 jsp 的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27104045/