将外部参数从jsp传递给xsl(Eclipse)

时间:2016-11-06 19:18:42

标签: eclipse jsp xslt

设置场景: 我正在使用Eclipse中的Web应用程序,使用一堆JSP和XSL。我需要隐藏一些功能,具体取决于一些用户'属性。这是该系列的第三份工作。

对于前两个作业,我能够实现我的目标,因为所需的更改是在JSP上(直接)或对象存在的XSL。

即。我们有以下顺序: - searchForm.jsp(包含您设置和提交的某些条件的表单), - resultsList.jsp(搜索结果列表 - 点击任何结果会带来结果的完整记录), - displayItem.jsp(完整记录), - record.xsl(转换displayItem.jsp的xsl)。

因此对于之前的两个作业,我需要隐藏的功能要么是在这些JSP本身,要么是在xsl上,在这种情况下(相关的)JSP具有:

<c:set target="${item}" property="xsltParameter" value="xxxx=Y"/>

其中&#39; item&#39;是一个现有的对象和&#39; xxxx&#39; xsl中定义的(通常但不一定是全局的)参数。 例如:

<xsl:param name="xxxx">N</xsl:param>

因此,如果我的更改是在xsl上,我会重复使用&#39;项目&#39;对象传递我的参数并在XSL中处理它。 例如。我穿上了jsp:

<c:set target="${item}" property="xsltParameter" value="abcd=AAA"/>

并添加到xsl:

 <xsl:param name="abcd"></xsl:param>

这样我就可以将自己的参数传递给xsl。

然而,对于这最后的工作: - XSL(filters.xsl)非常简短且独立。 - 它与resultsList.jsp显示在同一页面上(因此在searchForm.jsp之后)但没有连接我可以看到它。 - 在JSP上,我可以(重新)使用NO(适当的)目标对象。 - 我已经按照我所知的方式尝试创建变量/参数:

<c:set var="xyz" value="${abcd}"/>

但这似乎不起作用(当我在filters.xsl中创建相应的xyz全局参数时)。

我的问题是: - 我正在努力创造一个物体(如果这就是我需要做的事情)。 - 我可能需要做点其他事情,但我不确定是什么(因此我的帖子)。

B计划 绝望之下,计划B我创建了一个静态xml文件(param-val.xml)作为概念验证,与XSL在同一位置,我在其中放置了我的外部参数/标准:

 <paramroot>
   <paramval>abcd</paramval>
 </paramroot>

我想要做的是使用document()函数,提取此参数并在filters.xsl中使用它(如果可能)或者filter.xsl将导入的中间prefilters.xsl。这就是我需要一些帮助/提示/等等的地方。

<xsl:param name="theXML" select="'prefilters.xml'" />
<xsl:variable name="myDoc" select="document($theXML)" />

我一直在网上阅读内容并测试了一些内容,但我已经陷入困境(生化某些话题并学习其他话题)。我怎样才能抓住并使用&#39; abcd&#39;在过滤器或预过滤器中?

有关如何最好地处理此事的任何建议?

抱歉这篇长篇文章。任何帮助将不胜感激。

非常感谢和问候。

0 个答案:

没有答案