首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在jsp中动态生成xml时,如何借助转换器对象在XSL样式表中设置参数

问在jsp中动态生成xml时,如何借助转换器对象在XSL样式表中设置参数
EN

Stack Overflow用户
提问于 2015-03-16 18:10:57
回答 1查看 627关注 0票数 0

我需要在我的XSL样式表中设置参数,我正在检索列表中的所有值,并使用它在jsp中动态创建XML。因此,在这个process..But中没有创建任何外部xml文件,现在我需要在XSLt样式表中设置变量。但是由于没有创建xml文件,所以我发现很难使用转换,Object.Here是我的代码。

代码语言:javascript
复制
    <%@ page contentType="text/xml" %>
    <%@page import="java.util.ArrayList,aj.model.BriefBoardDetail,
     javax.xml.transform.Transformer,javax.xml.transform.TransformerFactory,
       javax.xml.transform.stream.StreamSource" %>
     <% ArrayList<BriefBoardDetail> list =(ArrayList)
       request.getAttribute("boardList"); 
       int countofPages =(Integer) request.getAttribute("countOfPages");
      int pageNumber = (Integer) request.getAttribute("currentPageNumber");
     Transformer transformer =  
               TransformerFactory.newInstance().newTransformer(new 
  StreamSource("/xslt/indexPageStyle.xsl"));
     transformer.setParameter("currentPage" , pageNumber);
     transformer.setParameter("lastPage" , countofPages);
     transformer.transform(???, ???);//what parameter i need to set here?
   %> 
   <?xml-stylesheet type="text/xsl" href="xslt/indexPageStyle.xsl"    
    version="1.0" encoding ="UTF-8" ?> 
   <AlgorithmHome>
    <%
    for(BriefBoardDetail bbs : list) {
     %>
    <subject id = '<%=bbs.getBoardId() %>' >
      <name> <%= 
       bbs.getBoardName() %></name>
       <description> <%= 
       bbs.getDescription() %></description>
     </subject>
 <%} %>
</AlgorithmHome>

因此,我需要将countOfPages和pageNumber在indexPageStyle.xsl.But中设置为xml是在这个jsp中动态生成的,所以如果需要在浏览器中显示xml,则需要设置为XMLSource和outputTarget in transformer.transform(XMLSource,outputTarget)。

EN

回答 1

Stack Overflow用户

发布于 2015-03-18 08:44:33

我对上面的代码做了一些修改,效果很好..

代码语言:javascript
复制
     <%@page contentType ="text/html; charset=ISO-8859-1" %>
     <%@page import ="java.util.ArrayList,aj.model.BriefBoardDetail" %>
     <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
     <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
      <% ArrayList<BriefBoardDetail> list =(ArrayList) request.getAttribute("boardList"); 
      Integer countofPages =(Integer) request.getAttribute("countOfPages");
      Integer pageNumber = (Integer) request.getAttribute("currentPageNumber");
          %>
    <c:set var="xmldata">
     <AlgorithmHome>
       <%
          for(BriefBoardDetail bbs : list) {
        %>
        <subject id = '<%=bbs.getBoardId()%>'>
         <name> <%= 
                bbs.getBoardName() %></name>
         <description> <%= 
              bbs.getDescription() %></description>
       </subject>
 <%}%>
  </AlgorithmHome>
</c:set>
 <c:import url="/xslt/indexPageStyle.xsl" var="xslt"/>
 <x:transform xml="${xmldata}" xslt="${xslt}">
 <x:param name ="currentPage" value="${param:pageNumber}"/>
 <x:param name ="lastPage" value="${param:countofPages}"/>
</x:transform>

一切都很好。但是现在我想把countofPages和页面编号都传递给我的XSL stylesheet.But,我无法传递它。谷歌和我得到的每个人都在值标签中传递字符串。..Please非常困惑,告诉我要传递一个值

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29084013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档