Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 如何将每个文件夹中的index.html更改为/当我们在浏览器上访问它时_Jsf_Web - Fatal编程技术网

Jsf 如何将每个文件夹中的index.html更改为/当我们在浏览器上访问它时

Jsf 如何将每个文件夹中的index.html更改为/当我们在浏览器上访问它时,jsf,web,Jsf,Web,我有一些独特的问题,但我认为这不是问题,我只是想优化我的网站有网址 所以我想改变一切 index.html 以每个文件夹为例 culture 文件夹,所以如果我们想访问 index.html 在区域性文件夹中,我们只需键入 culture/index.html culture/ 对吧??但我只想按类型访问 culture/index.html culture/ 有可能吗?如果是,我们如何生产?我正在使用jsf2作为编程语言。jsf2.0默认情况下不支持无扩展URL。对于社区来说,这

我有一些独特的问题,但我认为这不是问题,我只是想优化我的网站有网址

所以我想改变一切

index.html
以每个文件夹为例

culture
文件夹,所以如果我们想访问

index.html
在区域性文件夹中,我们只需键入

culture/index.html
culture/
对吧??但我只想按类型访问

culture/index.html
culture/

有可能吗?如果是,我们如何生产?我正在使用
jsf2
作为编程语言。

jsf2.0默认情况下不支持无扩展URL。对于社区来说,这是一个等待已久的特性,但最终我们通过JSF2.3(2017年初发布)实现了这一点。如果您想将应用程序更新到JSF2.3,或者想了解更多信息,请查看

关于如何为无扩展URL创建默认JSF方法的简要示例:

在web.xml文件中,使用标记包含每个所需的映射:

  <url-pattern>/page1</url-pattern>
  <url-pattern>/page2</url-pattern>
  <url-pattern>/path/page1</url-pattern>
/page1
/第2页
/路径/第1页
这些模式将分别将用户重定向到以下路径:

  • www.domain.com/page1->www.domain.com/page1.xhtml
  • www.domain.com/page2->www.domain.com/page2.xhtml
  • www.domain.com/path/page1->www.domain.com/path/page1.xhtml
请注意,上面的示例并没有提供重定向到index.xhtml页面的方法,它们只是新JSF 2.3映射工作原理的一个示例。

但是,如果您现在无法更新您的项目,我建议您遵循@Kukeltje的建议并查看库

PrettyFaces的重点是提供一种为旧JSF版本创建URL映射的简单方法。以下是它的工作原理示例:

在pretty-config.xml文件中,使用标记包含所需的映射:

<url-mapping id="view-page">
    <pattern value="/page" />
    <view-id value="/page/index.xhtml" />
</url-mapping>
<url-mapping id="view-page-edit">
    <pattern value="/page/#{id}" />
    <view-id value="/page/edit.xhtml" />
</url-mapping>

这些模式的工作原理与以下示例类似:

  • www.domain.com/page->www.domain.com/page/index.xhtml
  • www.domain.com/page/2->www.domain.com/page/edit.xhtml?id=2

这两个都是很好的选择,PrettyFaces现在看起来更强大,因为它们支持这种解决方案的时间更长,但是JSF 2.3也应该做到这一点。

也许我误解了您的问题,但这可以通过
web.xml
文件中的以下命令来实现:

Web应用程序开发人员可以定义部分URI的有序列表 在Web应用程序部署描述符中调用欢迎文件。这个 此机制的目的是允许部署人员指定 用于附加到的容器的部分URI的有序列表 请求与目录对应的URI时的URI WAR中的条目未映射到Web组件。此功能可使 您的站点更易于使用,因为用户可以键入URL而无需 提供特定的文件名

注意:欢迎文件可以是JSP、静态页面或servlet

只是:

当我进入时:

  • http://localhost:8080/myproject/
    我从
    WebContent/index.xhtml
  • http://localhost:8080/myproject/folder_a
    我从
    WebContent/folder\u a/index.xhtml
  • http://localhost:8080/myproject/folder_b
    我从
    WebContent/folder\u b/index.html

.xhtml文件是否包含JSF内容?它被解析了吗?我总是 认为将jsf/facelets文件定义为欢迎文件是行不通的 您需要通过“meta inf”进行http重定向

.jsf'是我在
web.xml`文件中使用的扩展名:

<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>

Facesservlet
*.jsf
请阅读以下问题的答案,了解问题的含义:


看看PrettyFaces.xhtml文件是否包含JSF内容?它被解析了吗?我一直认为将jsf/facelets文件定义为欢迎文件是行不通的,您需要通过“meta-inf”进行http重定向(请参见您引用中的最后一个注释)。我已经用一个解释更新了答案,即
jsf