我尝试在我的 JSF 应用程序中使用 \xe2\x80\x98rewrite\xe2\x80\x99 ( http://ocpsoft.org/rewrite/ )。
\n\n一切都很好,我已经创建了规则:
\n\n.addRule(Join.path("/profile/{pagename}-{id}/").to("/profile/{pagename}.xhtml?id={id}"))\n
Run Code Online (Sandbox Code Playgroud)\n\n一切正常,例如,当我转到 /profile/viewpoll-101/ 时,我看到带有 id = 101 的 poll 的正确页面。所以,现在我想在 h:link jsf 元素中获取用户友好的链接。我正在尝试这个:
\n\n<h:link outcome="/profile/viewpoll-#{poll.id}/">\n #{poll.title}\n</h:link>\n
Run Code Online (Sandbox Code Playgroud)\n\n但链接未激活...
\n\n那么,如何在 h:link 中获得用户友好的链接呢?
\n\n谢谢!
\n没有办法使用重写来做到这一点,只能使用 Prettyfaces。使用重写时,您必须指定 JSF 标识符。
\n\n\nPrettyFaces 附带了一个特殊的 JSF 组件,该组件简化了创建映射 URL 的链接。然而,JSF 2.0 引入了 h:link,它可以很好地创建此类链接。Rewrite 不\xe2\x80\x99t 包含任何特殊的 JSF 组件。建议使用标准 JSF 组件来呈现链接。
\n使用 h:link 创建重写 URL 的链接非常简单。只需使用您配置为连接的 to 部分的 URL 即可获得结果。如果 URL 包含参数,请使用 f:param 设置它们的值。
\n
<h:link outcome="/customer-details.jsf">\n <f:param name="id" value="123"/>\n Show details\n</h:link>\n
Run Code Online (Sandbox Code Playgroud)\n在JSF 2中,通过隐式导航,您可以使用它来访问/customer-details.jsp或/customer-details.xhtml:
\n<h:link outcome="/customer-details">\n <f:param name="id" value="123"/>\n Show details\n</h:link>\n
Run Code Online (Sandbox Code Playgroud)\n也可以看看:
\n\n 归档时间: |
|
查看次数: |
3345 次 |
最近记录: |