gpt4 book ai didi

jsf - outputLink和graphicImage之间的EL上下文路径评估差异

转载 作者:行者123 更新时间:2023-12-04 16:30:14 36 4
gpt4 key购买 nike

我正在使用以下内容在我们的应用程序中获取帮助文档。我的问题是,虽然 <h:graphicImage>正确评估上下文路径,h:outputLink将其评估为无。我试过同时使用 $#h:outputLink因为我知道他们有不同的评估时间。

两个 EL 表达式的计算方式有何不同?

<h:outputLink value="${pageContext.servletContext.contextPath}/services/help.pdf">
<h:graphicImage
url="${pageContext.servletContext.contextPath}/images/help.png"
alt="Online Help"/>
</h:outputLink>

最佳答案

上下文路径未出现在 <h:outputLink> 中表明您实际上使用的是 Facelets 而不是 JSP。 ${pageContext}在 Facelets 中根本不存在。它特定于遗留 JSP。两个表达式都刚刚评估为空字符串。因此,它们之间根本没有区别。

上下文路径出现在 <h:graphicImage> 中完全符合预期。这是由组件本身自动包含的。事实上,整个表达式是多余的,以下应该也能正常工作。

<h:graphicImage url="/images/help.png" alt="Online Help"/>
<h:outputLink>确实不会自动包含上下文路径。只有 <h:link> 这样做。你需要自己包含它。在 Facelets 中,您可以使用 #{request}获取 HttpServletRequest 的句柄反过来,它有一个 getContextPath() 以及(由 <h:graphicImage> 在封面下使用)。
<h:outputLink value="#{request.contextPath}/services/help.pdf">

关于jsf - outputLink和graphicImage之间的EL上下文路径评估差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4148555/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com