一、应用背景
JSP取得Servlet中放入request的List,将List中的数据拼装成XML。以下代码在Eclipse的内置浏览器中显示为xml,没有问题。
- /**
- * 新闻Servlet
- * @author 徐越
- *
- */
- public class ListServlet extends HttpServlet
- {
- private static final long serialVersionUID = 1L;
- private VideoNewsService vs = new VideoNewsServiceImpl();
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
- {
- doPost(request, response);
- }
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
- {
- List<VideoNews> news = vs.readNews();
- request.setAttribute("lstnews", news);
- request.getRequestDispatcher("/WEB-INF/pages/news.jsp").forward(request, response);
- }
- }
- <%@ page language="java" contentType="text/xml; charset=utf-8" pageEncoding="utf-8"%>
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <?xml version="1.0" encoding="UTF-8"?>
- <videoNews>
- <c:forEach items="${lstnews}" var="n">
- <news id="${n.id }">
- <title>${n.title }</title>
- <length>${n.timeLength }</length>
- </news>
- </c:forEach>
- </videoNews>
二、发现问题
火狐中报错:XML解析错误:XML 或文本声明不在实体的开头
chrome报错:XML declaration allowed only at the start of the document
根据错误信息,可以知道XML声明<?xml version="1.0" encoding="UTF-8"?>必须在文档的开头。
三、解决问题
将page、taglib、xml同时放在第一行即可,一个接一个的后面。虽然不好看,但是解决问题哦。
本文转自IT徐胖子的专栏博客51CTO博客,原文链接http://blog.51cto.com/woshixy/1087658如需转载请自行联系原作者
woshixuye111