当前位置: 首页 > 知识库问答 >
问题:

JSF与ExtensionlessURL/Omnifaces

唐泳
2023-03-14

我正在尝试在我的JSF应用程序中使用无扩展URL。。。

我已经在使用:https://showcase.omnifaces.org/facesviews/ExtensionlessURLs这很好,但是如果我有一个带有参数的URL,它仍然带有:

mypage.jsf?myparameter=12345

这里也有排除的可能性吗。jsf,因此URL将是:

我的页面?参数设置

我知道也有Prettyfaces可用,但我想我必须为每个JSF页面定义一个映射?因此,我使用的是Omnifaces。。。

有什么办法能帮上忙吗?

共有1个答案

刘凡
2023-03-14

您似乎有一个现有的JSF应用程序,其FacesServlet映射到*. jsf而不是*. xhtml,并试图使用其默认的“最小”配置通过OmniFaces FacesViews启用无扩展URL。

如果不对现有的JSF应用程序进行其他更改,这确实是行不通的。

FacesViews期望您已经将FacesServlet映射到自JSF 2.0以来推荐的*. xhtml的URL模式。所以你需要做以下调整:

  1. Change FacesServlet mapping from *.jsf to *.xhtml in web.xml.
  2. Find & replace all occurrences of .jsf throughout source code with .xhtml. So e.g.
    ec.redirect(ec.getRequestContextPath() + "/portal/employeeEdit.jsf" + "?id=" + id);
    
    ec.redirect(ec.getRequestContextPath() + "/portal/employeeEdit.xhtml" + "?id=" + id);
    

    或者,等待OmniFaces 2.7.11或3.11或4.0-M8发布。我今天已经修复了这些版本中的向后兼容性问题,如问题623所示。使用此修复程序,现有的*. jsfURL将正确地自动重定向到301-无扩展的URL。

    请注意,此问题与带有参数的URL无关。没有参数的URL也会发生这种情况。

 类似资料:
  • 问题内容: 我想测试inputText字段,以查看其内容是否至少匹配一个&(与号)。 当我测试或或validateRegex的内侧的图案场,我总是收到此错误: javax.faces.view.facelets.FaceletException:错误解析/index.xhtml:错误跟踪[行:71]对标识进行永久性识别的“&”示例实体。 我得到500错误… 我怎样才能逃脱这个角色? 更新资料 我测

  • 问题内容: 我有一个主要使用Richfaces的JSF应用程序。我想介绍一个功能更丰富的网格控件,例如基于jQuery的jqgrid。是否可以从JSF支持bean获得JSON数据?如果没有,是否有替代方法? 问题答案: 这里可能有几个选择。 Bean方法可以返回一个字符串,它只是一个JSON字符串 您可以使用JsonLib将Java对象转换为Json。 使用其他Servlet服务网格请求 我将推荐

  • 我试图从jsf启动激活引擎 引擎总是以null返回,我读到activiti.cfg.xml文件应该在类路径中,我已经把文件放在web-inf/class下,但是引擎仍然返回null,这意味着激活不能初始化引擎,有什么想法吗?

  • 我需要帮助,在理解JSF连接Java类文件的方式。在我当前进入的项目中,它使用类对象将JSF与Java类连接起来。但我不知道对象在哪里初始化。在Struts中,我们通过Struts.xml将JSP与action连接起来。但是在这里我没有看到任何映射,它只是使用 这里的是一个对象,而不是类名。 我的问题是这个如何精确地连接到classname? 除了冬眠,我只是一个星期以上的经验。请帮我把你所有的东

  • 问题内容: 我正在尝试通过JSF中的递归构建导航树。我将组件定义为: 我的树声明为: 我通过以下方式调用组件: 问题是,这导致。 在JSF中有一些关于构建递归的参考(例如,Facelets中的c:forEach与ui:repeat)。常见问题似乎是将构建时组件和渲染时组件/标签混合在一起。就我而言: 我的复合组件实际上是一个标记,在构建树时执行 ui:repeat是实际的JSF组件,在呈现树时会对

  • 我是JSF新手,正在尝试理解操作属性和结果属性之间的区别是什么?这不是按钮和命令按钮之间的区别,而是同一按钮标记上的结果属性与操作属性之间的区别。 例如,我可以: 或 我不知道什么时候用哪个。此外,如果<代码> 非常感谢。