展会信息港展会大全

解决JSP中拼装数据为XML出现的问题
来源:互联网   发布日期:2016-03-01 10:52:33   浏览:1084次  

导读:一、应用背景JSP取得Servlet中放入request的List,将List中的数据拼装成XML。以下代码在Eclipse的内置浏览器中显示为xml,没有问题。[java] /*** ...

一、应用背景

JSP取得Servlet中放入request的List,将List中的数据拼装成XML。以下代码在Eclipse的内置浏览器中显示为xml,没有问题。

[java]

/**

* 新闻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);

}

}

/**

* 新闻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);

}

}

[html]

<%@ 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>

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

赞助本站

人工智能实验室

相关热词: 开发 编程 android

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港