- 我可以配置 PrettyFaces/Rewrite 将所有传入 URL 请求映射到一个页面吗?
- 那么我如何从 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 获得相同的效果?
最佳答案
我认为Rewrite是您正在寻找的解决方案。首先,您需要使用此处概述的步骤从“PrettyFaces 3.x”升级到“重写配置 PrettyFaces”:PrettyFaces Homepage 。这应该是一个直接替代品,不需要您进行任何额外配置。
使用“Rewrite Config 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(".*");
}
}
注意:
^^ Make sure to register this Configuration Provider in your META-INF/services (as described in the instructions!)
我也 added an issue to support the super-wildcard character在下一版本的 Rewrite 中,这意味着您将能够使用连接注释,而不必只为这一规则创建配置提供程序(但是,我认为您会发现配置 API 很有用。)
关于java - 如何配置 url 映射以获取对 PrettyFaces/Rewrite 中的一个 jsf 页面的所有 * url 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17137227/