JSP中拼装数据为XML出现的问题

来源:互联网 发布:vmware没有mac选项 编辑:程序博客网 时间:2024/05/22 06:33

一、应用背景

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同时放在第一行即可,一个接一个的后面。虽然不好看,但是解决问题哦。

 

方法二

有网友朋友给出好的方法,在jsp首行放置<%@ page trimDirectiveWhitespaces="true"%>

 

 

原创粉丝点击