我如何从jsp获取xml文件作为响应

时间:2014-11-24 11:43:07

标签: java jsp servlets

BufferedHttpServletResponse bufferedHttpServletResponse = new BufferedHttpServletResponse(response);
request.getRequestDispatcher(jspPage).forward(request, bufferedHttpServletResponse);
String xmlData = bufferedHttpServletResponse.getData();

我正在使用modelAndView我的anyChart组件需要XML文件中的数据,此文件应该动态生成,但它表示响应已经提交。

1 个答案:

答案 0 :(得分:2)

您可以使用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的推荐建议,您可能只想在控制器中使用返回类型为@ResponseBody注释的方法。

@RequestMapping(value = "/xmlresponse", method = RequestMethod.GET)
public @ResponseBody ResultObjectWithJaxbAnnotations gernerateXmlResult() {

不要忘记你的Spring应用程序环境中的<mvc:annotation-driven /> - 但你最有可能已经这样做了。