设置场景: 我正在使用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;在过滤器或预过滤器中?
有关如何最好地处理此事的任何建议?
抱歉这篇长篇文章。任何帮助将不胜感激。
非常感谢和问候。