gpt4 book ai didi

jsf - 使用 PrettyFaces 的 JSF 资源(CSS、JS、图像)的漂亮 URL

转载 作者:行者123 更新时间:2023-12-02 00:10:43 33 4
gpt4 key购买 nike

我有一个在 Glassfish 3.1.2.2 上运行的网络应用程序,它使用 JSF 2.1 (Mojarra) 和 PrettyFaces 3.3.3 来促进将“漂亮”的 REST 样式 URL 与我的应用程序集成的任务。

但是,查看生成的 html 代码,我发现我的应用程序资源的路径相当“难看”。像这样:

<script type="text/javascript" src="/HelloWorld/faces/javax.faces.resource/js/jquery-1.9.1.min.js">

特别是 faces/javax.faces.resource/部分伤害了我的眼睛。按照 PrettyFaces 的主要思想,我想删除这部分。

是否可以拦截这些 URL 的生成,PrettyFaces 可以帮助我吗?

我正在使用 <h:outputScript name="js/jquery-1.9.1.min.js" /> , <h:outputStylesheet name="css/app.css" /><h:graphicImage name="img/logo.png" />在我的 JSF-Servlet 中包含资源引用。

编辑:我想我必须做两件事?

  • 一: map 请求,如 /img/*到他们的实际位置/faces/javax.faces.resource/img/* .
  • 二: Hook <h:graphicImage /> 的 URL 生成元素(和其他)。

如果你能给我一些关于从哪里开始的指示,我会很高兴。我是 JSF 的新手。

非常感谢! :)

最佳答案

不幸的是,使用 PrettyFaces 很难实现这样的要求。这就是我们决定开始 Rewrite 的原因之一,它是 PrettyFaces 的继任者。

有了 Rewrite,做这样的事情就很容易了。您只需添加一个 Join 规则,将您希望看到的路径转换为您的应用程序当前使用的路径。

您的要求可以通过这样的方式实现:

.addRule(Join.path("/js/{file}").to("/faces/javax.faces.resource/js/{file}"))

很简单,不是吗?如果您想了解有关重写的更多信息,请查看 examples configurations .如果您有任何问题,请查看 forums .

即将发布的 Rewrite 2.0.0.Final 带来了一些不错的增强功能。特别是 PrettyFaces 的向后兼容模块,如果您想用 Rewrite 替换 PrettyFaces,它允许您重用当前的 PrettyFaces 配置。

关于jsf - 使用 PrettyFaces 的 JSF 资源(CSS、JS、图像)的漂亮 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15586837/

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