JSF中是否有一个taglib,用于在我想要的任何URL中插入正确的应用程序上下文根,就像JSP中的<c:url>
标记一样?
答案 0 :(得分:7)
不完全是这样,但所有引用URL资源的JSF组件都已经自动包含正确的上下文路径,最终也包含FacesServlet
映射。例如<h:link>
:
<h:link value="Link to other page" outcome="otherpage" />
会呈现类似的内容(假设您的上下文路径为/contextname
且FacesServlet
已映射到*.xhtml
):
<a href="/contextname/otherpage.xhtml">Link to other page</a>
您可以按<f:param>
包含请求参数:
<h:link value="Link to other page" outcome="otherpage">
<f:param name="foo" value="#{bean.foo}" />
</h:link>
呈现如下内容:
<a href="/contextname/otherpage.xhtml?foo=bar">Link to other page</a>
其他链接组件也分别是CSS,JS和图片的<h:outputStylesheet>
,<h:outputScript>
和<h:graphicImage>
:
<h:outputStylesheet library="default" name="css/foo.css" />
<h:outputScript library="default" name="js/foo.js" />
<h:graphicImage library="default" name="images/foo.png" />
呈现如下内容:
<link rel="stylesheet" type="text/css" href="/contextname/javax.faces.resource/css/foo.css.xhtml?ln=default" />
<script type="text/javascript" src="/contextname/javax.faces.resource/js/foo.js.xhtml?ln=default"></script>
<img src="/contextname/javax.faces.resource/images/foo.png.xhtml?ln=default" />