【问题标题】:How to configure url mapping to get all* url request to one jsf page in PrettyFaces / Rewrite如何配置 url 映射以获取所有 * url 请求到 PrettyFaces / Rewrite 中的一个 jsf 页面
【发布时间】:2013-06-12 19:11:06
【问题描述】:
  1. 我可以配置 PrettyFaces / Rewrite 以将所有传入的 URL 请求映射到一个页面吗?
  2. 那么如何从 PrettyFaces / Rewrite 获取域名后的完整 URL 路径?也许有一些注释或像这样的{URLPATH}? Looks like this, but maybe have another solutions on this moment

我需要:来自所有请求:

"/../../../*......." or/and "/a/b/c/*/*/*/.." or/and "/{param}/**" or/and "/{param}/{param2}/{param3}/**/**" 

映射到一个 JSF 页面。

类似这样的:

<url-mapping id="pages">
    <pattern value="/**" />
    <view-id value="/pages.xhtml" />
</url-mapping>


在 Spring MVC 中,我这样做就像“/україна/452454/45/4774/7744/longpath.html”:

@RequestMapping(value = {"/**"},method=RequestMethod.GET)
public @ResponseBody String info(HttpServletRequest request) {
    String remainingPaths = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
    return "<H1>Good Work</H1><br/>" + remainingPaths;
}

我有输出:

<H1>Good Work</H1><br/>/україна/452454/45/4774/7744/longpath.html

如何从 PrettyFaces / Rewrite 获得相同的效果?

【问题讨论】:

    标签: java jsf jakarta-ee url-rewriting prettyfaces


    【解决方案1】:

    我认为Rewrite 是您正在寻找的解决方案。首先,您需要使用此处列出的步骤从“PrettyFaces 3.x”升级到“重写配置 PrettyFaces”:PrettyFaces Homepage。这应该是一个直接替换,不需要您进行额外的配置。

    一旦您使用“重写配置 Prettyfaces”模块升级并验证您的应用程序正常工作,您需要在新的重写配置提供程序中创建一个规则(按照重写主页上的步骤操作):

    package com.example;
    public class AllPagesToOneViewProvider extends HttpConfigurationProvider
    {
       @Override
       public int priority()
       {
         return 0;
       }
    
       @Override
       public Configuration getConfiguration(final ServletContext context)
       {
         return ConfigurationBuilder.begin()
           .addRule(Join.path("/{all}").to("/pages.xhtml"))
           .where("all").matches(".*");
        }
    }
    

    注意:

    ^^ 确保在您的 META-INF/服务中注册此配置提供程序(如说明中所述!)

    我还在 Rewrite 的下一版本中添加了 added an issue to support the super-wildcard character,这意味着您将能够使用 Join Annotation 而不是只为这条规则创建配置提供程序(但是,我认为您会发现配置 API 很有用。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-12
      • 1970-01-01
      • 1970-01-01
      • 2013-03-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      • 1970-01-01
      相关资源
      最近更新 更多