加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

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

发布时间:2023-07-18 14:15:53 所属栏目:教程 来源:
导读:一、应用背景

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

[java]

/**

* 新闻Servlet

* @author 徐越

*

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

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!