当前位置 : 主页 > 编程语言 > java >

jsp – 如何在jsf中创建用户友好和seo友好的URL?

来源:互联网 收集:自由互联 发布时间:2021-06-25
例如,我有使用方法getTitle()和getContent()的类Article. 我也有使用方法getAllArticles()的ArticlesService.如何创建具有有意义名称的链接列表(由#{article.title}组成)?喜欢: http://mysiteaddress.com/articl
例如,我有使用方法getTitle()和getContent()的类Article.

我也有使用方法getAllArticles()的ArticlesService.如何创建具有有意义名称的链接列表(由#{article.title}组成)?喜欢:

http://mysiteaddress.com/article/first-article-title
http://mysiteaddress.com/article/how-to-make-links-in-jsf

..或类似的东西.

我可以使用< h:commandLink>创建具有所有必要功能的链接,但我不知道如何为它制作好的’href’:它总是有href’#’.

我可以使用< h:outputLink>创建漂亮的链接但我不知道如何添加必要的功能.

在jsp中,我创建了自己的前端控制器,它从请求中解析了URL,然后执行重定向到对应的jsp-page.

如何在JSF中实现相同的功能?

如果这是对现有应用程序的改进,那么您基本上需要一个检测“脏”和“友好”URL的 Filter.当它检测到“脏”URL时,它应该在 HttpServletResponse#sendRedirect()之前将请求重定向到“友好”URL.当它检测到“友好”URL时,它应该在 RequestDispatcher#forward()之前将请求转发到“脏”URL.示例可以在这个相关问题中找到: How to use a servlet filter in Java to change an incoming servlet request url?

此外,您还需要一个自定义ViewHandler来为JSF< h:form>,< h:link>等生成所需的“友好”URL.可以在此处找到示例:Dynamic Directory in Java EE Web Application.

如果这是一个新的应用程序或可以更改的应用程序,您可以考虑任何现有的漂亮URL库而不是重新发明轮子:

> PrettyFaces,这是一个完整的URL重写解决方案.它需要一个额外的XML配置文件pretty-config.xml.如果要完全更改URL和/或要配置从旧URL到新URL的重定向,则此库非常有用.
> FacesViews FacesViews库,它通过单个web.xml上下文参数使现有URL无扩展.它还支持“MultiViews”,从而可以在托管bean中以声明方式注入路径参数.例如. / foo / bar / baz可以指向/foo.xhtml,值bar和baz可以通过@Param(pathIndex)注入.

还有Mojarra Scales库的实验PrettyUrlPhaseListener,但它是一个旧库,而PrettyFaces主要基于它,所以它不值得努力.

网友评论