0

我有一个 JSF 2.0 应用程序,其中每个页面都存储在数据库的 cms_page 表中。该表具有 PK 列 cms_page_id 和一个 URL 列(其中包含 SEO 友好的 URL)。

当我显示一个页面时,有一个名为 About Us 的链接,其 URL 为“/com/aboutus.html” 这在我的 XHTML 文件中显示为:#{cmsPage.cmsPageUrlName}/>

哪个呈现 <a href="/com/aboutus.html">About Us</a>

据我所知 h:outputLink 不能用于触发支持 bean 中的任何方法。我不能使用 h:commandLink,因为当您将鼠标悬停在链接上时,它不会显示“/com/aboutus.html” URL。我不知道如何触发支持 bean 方法来导航到下一页。about us 链接实际上会指向 /faces/pages.xhtml,但会使用 PrettyFaces 来显示“/com/aboutus.html” URL

另外,如果我直接访问 URL,我会怎么做www.test.com/com/aboutus.html?这个 URL 不存在,实际的 URL 是www.test.com/faces/pages.xhtml?url=%2Fcom%2Faboutus.html 我应该考虑设置 PrettyFaces 来代替所有的工作吗?

4

2 回答 2

0
<ui:include src="#{cmsPage._url}" />

ManagedBean 名称

@ManagedBean(name="cmsPage")
@SessionScoped
class Cms_Page{
  private String _pageId;
  private String _url;

  //getter setter
}

使用自定义方法从 DAO 中获取并设置 Cms_Page 中的值

于 2013-10-15T07:35:49.810 回答
0
  1. 创建数据库连接
  2. 从数据库中读取列
  3. 将该列写入您的 jsf 页面

请查看 JSF/JPA 文档或教程来解决这个问题。

于 2013-10-15T06:47:34.670 回答