当前位置: 首页 > 面试题库 >

如何配置不带文件扩展名的JSF URL映射?

缪修德
2023-03-14
问题内容

大多数教程都建议使用默认的JSF配置,类似于以下web.xml:

<context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
</context-param>


<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>

使用此配置,仅当对应的URL以文件扩展名.jsf结尾(例如,http://localhost/welcome.jsf)时,Faces
Servlet才能找到我的Web应用程序中的相应 .xhtml文件。是否可以配置web.xml,以便使用相同的
.xhtml文件将不以.jsf结尾的URL也处理为JSF页面?

换句话说,我希望拥有不依赖于服务器端实现的URL。


问题答案:

您可以使用过滤器隐藏此扩展名并使URL
SEO友好。此类过滤器的一种实现是PrettyFaces。

例如:如果您需要http://host:port/yourapp/login解决问题,login.xhtml则在漂亮的过滤器中配置以下方式

<url-mapping id="login">
    <pattern> /login </pattern>
    <view-id> /legacy/user/login.jsf </view-id>
</url-mapping>

看看两分钟的视频教程



 类似资料:
  • 问题内容: 我有这个PHP代码: 如果我有一个名为的文件,则此函数返回。 我想做相反的事情,我希望函数不带扩展名就返回。 该文件只是变量中的字符串。 问题答案: 不需要所有这些。签出pathinfo() ,它为您提供了路径的所有组件。 手册中的示例: 代码输出: 或者,您只能获得某些部分,例如:

  • 我目前正在尝试制作一个脚本,该脚本将grep输入以查看某些内容是否属于某种文件类型(例如zip),尽管文件类型之前的文本可以是任何内容,因此例如 都属于这一类。我正在尝试使用通配符grep这些,到目前为止,我已经尝试过了。 但是每当我这样做时,它都会发现文件很好,但是如果.zip之后有其他字符,它仍然会显示输出例如或仍然会被grep拾取。话虽如此,我应该怎么做才能防止 grep 在后显示具有其他字

  • 问题内容: 如何从Python路径中获取不带扩展名的文件名? 问题答案: 获取不带扩展名的文件名: 输出: 重要说明:如果文件名具有多个点,则仅删除最后一个扩展名之后的扩展名。例如: 输出: 如果您需要处理这种情况,请参见下面的其他答案。

  • 我在stack上看到过类似的问题,但都没能找到我人生道路上特殊坎坷的答案。我会捐赠给任何能给我解决方案的人。 我正在尝试显示没有扩展名的外部存储目录中的内容(. txt文件)。我已经导入了(apache.commons.io)。

  • 问题内容: 设法将我的文件存储在一个文件夹中,但是没有文件扩展名。 有谁知道我将如何存储带有文件扩展名的文件? 问题答案: 从文档中:“ Multer不会为您添加任何文件扩展名,您的函数应返回带有文件扩展名的文件名。” 添加扩展名的方法如下: 我建议使用该属性来确定扩展名。例如: 更多信息:https://github.com/expressjs/multer

  • 问题内容: 我正在某个程序上工作,根据文件的扩展名,我需要做不同的事情。我可以用这个吗? 问题答案: 假设是一个字符串,可以使用: 要不区分大小写,并消除可能很大的else-if链: