gpt4 book ai didi

java - 如何在 JSF 中获取绝对 url?

转载 作者:行者123 更新时间:2023-11-29 06:42:09 25 4
gpt4 key购买 nike

我正在尝试用 JSF 为我的 Web 应用程序编写导航。

到目前为止,我有这个:

<ul>
<ui:repeat value="#{pageBean.getPages()}" var="page">
<li class="#{(pageContext.request.requestURI.endsWith(page.url)) ? 'current_page_item' : '' }">
<a href="#{pageContext.servletContext.getRealPath(page.url)}">#{page.name}</a>
</li>
</ui:repeat>
</ul>

但是anchor的href属性始终为空。我也不确定 pageContext.request.requestURI.endsWith(page.url) 是否正常工作——我猜不是,因为没有页面有 current_page_item 类。

我做错了什么?

谢谢!

最佳答案

getRealPath()确实没有按照您的想法去做。阅读其 javadoc .

但这种方法不必要地过于复杂。如果使用 JSF <h:link>,则不需要自己生成绝对路径。组件与 View ID 列表相结合。 <h:link>将自动添加正确的上下文路径(如果有)。

<ul>
<ui:repeat value="#{pageBean.pages}" var="page">
<li class="#{view.viewId == page.viewId ? 'current_page_item' : ''}">
<h:link value="#{page.name}" outcome="#{page.viewId}" />
</li>
</ui:repeat>
</ul>

View ID 正是 JSF 在其掩护下用于定位 View 和处理导航的页面标识符。 View ID 是 View 文件的 Web 内容相对路径,例如 /foo/index.xhtml .

请注意 #{view}在上面的例子中是一个 implicit EL variable指向当前UIViewRoot ,因此您无需自己创建/准备它。

关于java - 如何在 JSF 中获取绝对 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10270899/

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