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

使用Pretty faces和spring boot的SEO用户友好url

况嘉运
2023-03-14

我已经按照这个方法配置了使用JSF的spring boot工作,并且配置还可以,但是我需要使用pretty Faces在所有的JSF中去掉.xhtml后缀。到目前为止,我已经设法在Spring Boot中配置了PrettyFaces RewriteFilter,并在托管bean中添加了URLMapping,但它似乎不起作用,因为它得到了‘白标签错误页’。这是我的登录托管bean

@Scope(value = "session")
@Component(value = "loginMgr")
@URLMapping(id = "login",
        pattern = "/login",
        viewId = "/my_context/login.xhtml")
public class LoginManager {

}

和我的漂亮面孔配置bean

@Bean
public FilterRegistrationBean prettyFilter() {
    System.out.println("pretty filter called");
    RewriteFilter filter=new RewriteFilter();
    FilterRegistrationBean prettyFilter = new FilterRegistrationBean(filter);
    prettyFilter.setDispatcherTypes(DispatcherType.FORWARD, DispatcherType.REQUEST,
            DispatcherType.ASYNC, DispatcherType.ERROR);
    prettyFilter.addUrlPatterns("/*");

    return prettyFilter;
}

这是我的sping引导应用程序.属性

spring.datasource.url= jdbc:postgresql://localhost:5432/mydb
spring.datasource.username=postgres
spring.datasource.password=password
#spring.jpa.show-sql=true
spring.datasource.driver-class-name=org.postgresql.Driver
#spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
server.context-path=/my_context
spring.security.enabled=false
management.security.enabled=false
security.basic.enabled=false
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.ImprovedNamingStrateg

我使用的是JSF2.2和PrimeFaces5.3及以下版本的pretty faces maven依赖项

<dependency>
            <groupId>org.ocpsoft.rewrite</groupId>
            <artifactId>rewrite-servlet</artifactId>
            <version>3.4.1.Final</version>
        </dependency>
        <dependency>
            <groupId>org.ocpsoft.rewrite</groupId>
            <artifactId>rewrite-integration-faces</artifactId>
            <version>3.4.1.Final</version>
        </dependency>

共有1个答案

严子默
2023-03-14

如果您希望去掉.xhtml后缀并使用MyFaces 2.3,您可以简单地将:org.apache.MyFaces.automatic_extensionless_mapping设置为true

所以你不需要漂亮的面孔或重写。

注意:它可能引发一个异常,即无法从web.xmlweb-fragment.xml中未配置的侦听器调用#GetServletRegistrations。在这种情况下,您需要将org.apache.myfaces.webapp.StartupServletContextListener添加到web.xmlweb-fragment.xml中。

 类似资料:
  • 问题内容: 来自维基百科: 甲 蛞蝓 是识别使用人类可读关键字的页面的URL的一部分。 为了使URL易于用户输入,通常也删除或替换特殊字符。例如,带重音的字符通常被英语字母中的字母代替;标点符号通常会被删除;和空格(必须将其编码为%20或+)替换为破折号(-)或下划线(_),从美学上讲更令人愉悦。 语境 我开发了一个照片共享网站,用户可以在该网站上上传,共享和查看照片。 所有页面都是自动生成的,而

  • 问题内容: 我想将我的URL设置为SEO友好URL。我尝试通过重写规则编辑.htaccess文件 它路由正确的URL,但是在该页面中CSS JS和图像无法正常工作。 问题答案: 您不需要第二个重写规则。您的CSS / JS路径都相对于您当前的位置。 您所需要做的就是在CSS / JS路径之前加上“正斜杠”。

  • 问题内容: 在我的PHP网站上,当前用户使用电子邮件地址和密码登录。我也想添加一个用户名,该用户名g \ set将是唯一的,并且他们不能更改它。我想知道如何使该名称中没有空格并在URL中工作,以便可以使用那里的用户名链接到那里的个人资料和其他内容。如果用户名中有空格,则应在其下添加下划线jason_davis。我不确定执行此操作的最佳方法吗? 问题答案:

  • 本文向大家介绍Hypertext Access file SEO友好网址,包括了Hypertext Access file SEO友好网址的使用技巧和注意事项,需要的朋友参考一下 示例 如果您具有如下网址,搜索引擎将不会为您的产品建立索引: SEO友好的URL看起来像http://www.yourdomain.com/123/product-name/。以下代码有助于实现此目的,而无需更改prod

  • 使用友好的 MAC 编号 默认情况下,主机跟交换机启动后分配的 MAC 地址是随机的,这在某些情况下不方便查找问题。 可以使用 --mac 选项,这样主机跟交换机分配到的 MAC 地址跟他们的 ID 是一致的,容易通过 MAC 地址较快找到对应的节点。

  • 问题内容: 我想将我的URL设置为SEO友好URL。我尝试通过重写规则编辑.htaccess文件 它路由正确的URL,但是在该页面中CSS JS和图像无法正常工作。 问题答案: 您不需要第二个重写规则。您的CSS / JS路径都相对于您当前的位置。 您的CSS存在于此处:/css/normalize.css 您的页面正在此处查看:/swift-details/2/abblinbb/css/norm