带有 ExtensionlessURLs / Omnifaces 的 JSF
JSF with ExtensionlessURLs / Omnifaces
我正在尝试在我的 JSF 应用程序中使用 ExtensionlessURLs...
我已经在使用:https://showcase.omnifaces.org/facesviews/ExtensionlessURLs
这工作正常,但如果我有一个带有参数的 URL 它仍然带有:
mypage.jsf?myparameter=12345
是否有可能在这里也排除 .jsf,所以 URL 将是:
mypage?myparameter=12345
我知道 Prettyfaces 也可用,但我想我必须为每个 JSF 页面定义一个映射?因此我使用了 Omnifaces...
有什么帮助吗?
您似乎有一个现有的 JSF 应用程序,其 FacesServlet
映射到 *.jsf
而不是 *.xhtml
,并且正在尝试通过 OmniFaces 启用无扩展名 URL FacesViews 使用其默认的“最小”配置。
如果不对现有的 JSF 应用程序进行其他更改,这确实无法工作。
FacesViews 期望您已经将 FacesServlet
映射到 *.xhtml
的 URL 模式,即自 JSF 2.0 以来的 recommended。所以需要做如下调整:
- 在
web.xml
中将 FacesServlet
映射从 *.jsf
更改为 *.xhtml
。
- 在整个源代码中查找并替换所有出现的
.jsf
为 .xhtml
。所以例如
ec.redirect(ec.getRequestContextPath() + "/portal/employeeEdit.jsf" + "?id=" + id);
必须成为
ec.redirect(ec.getRequestContextPath() + "/portal/employeeEdit.xhtml" + "?id=" + id);
有点体面的 IDE 只需点击几下就可以做到这一点(例如 Eclipse Ctrl+H, File Search, 在 封闭项目 中找到 .jsf
并替换为 .xhtml
).
或者,等待 OmniFaces 2.7.11 或 3.11 或 4.0-M8 发布。我今天已根据 issue 623 修复了这些版本中的向后兼容性问题。通过此修复,现有 *.jsf
URL 将正确地自动 301 重定向到无扩展名。
请注意,此问题与带参数的 URL 没有具体关系。没有参数的 URLs 也会发生这种情况。
我正在尝试在我的 JSF 应用程序中使用 ExtensionlessURLs...
我已经在使用:https://showcase.omnifaces.org/facesviews/ExtensionlessURLs 这工作正常,但如果我有一个带有参数的 URL 它仍然带有:
mypage.jsf?myparameter=12345
是否有可能在这里也排除 .jsf,所以 URL 将是:
mypage?myparameter=12345
我知道 Prettyfaces 也可用,但我想我必须为每个 JSF 页面定义一个映射?因此我使用了 Omnifaces...
有什么帮助吗?
您似乎有一个现有的 JSF 应用程序,其 FacesServlet
映射到 *.jsf
而不是 *.xhtml
,并且正在尝试通过 OmniFaces 启用无扩展名 URL FacesViews 使用其默认的“最小”配置。
如果不对现有的 JSF 应用程序进行其他更改,这确实无法工作。
FacesViews 期望您已经将 FacesServlet
映射到 *.xhtml
的 URL 模式,即自 JSF 2.0 以来的 recommended。所以需要做如下调整:
- 在
web.xml
中将FacesServlet
映射从*.jsf
更改为*.xhtml
。 - 在整个源代码中查找并替换所有出现的
.jsf
为.xhtml
。所以例如
必须成为ec.redirect(ec.getRequestContextPath() + "/portal/employeeEdit.jsf" + "?id=" + id);
有点体面的 IDE 只需点击几下就可以做到这一点(例如 Eclipse Ctrl+H, File Search, 在 封闭项目 中找到ec.redirect(ec.getRequestContextPath() + "/portal/employeeEdit.xhtml" + "?id=" + id);
.jsf
并替换为.xhtml
).
或者,等待 OmniFaces 2.7.11 或 3.11 或 4.0-M8 发布。我今天已根据 issue 623 修复了这些版本中的向后兼容性问题。通过此修复,现有 *.jsf
URL 将正确地自动 301 重定向到无扩展名。
请注意,此问题与带参数的 URL 没有具体关系。没有参数的 URLs 也会发生这种情况。