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

在web过滤器中使用漂亮的面孔

关浩壤
2023-03-14

使用Tomcat 7----Primefaces 3.4.1----javax faces 2.1.17----prettyfaces-jsf2 3.3.3

我在我的项目中正确地配置了漂亮的面孔,但是我的web过滤器不能使用由漂亮的面孔编写的新URL。

下面是一个示例pretty-config.xml

<url-mapping id="home">
    <pattern value="/home"/>
    <view-id value="/secure/homepage.xhtml"/>
</url-mapping>

<url-mapping id="register">
    <pattern value="/register"/>
    <view-id value="/public/register.xhtml"/>
</url-mapping>

<url-mapping id="welcome">
    <pattern value="/"/>
    <view-id value="/public/welcome.xhtml"/>
</url-mapping>

<url-mapping id="profile">
    <pattern value="/profile/#{userId}"/>
    <view-id value="/profile.xhtml"/>
</url-mapping>

login(welcome)和register页面位于“public”文件夹中,它们的web筛选器由注释定义:@webfilter(“/public/*”)

2)我也想阻止用户输入原始URL。我知道漂亮的脸是隐藏原始URL完全,但有没有办法做到这一点?

--解决了--谢谢BalusC

如果使用批注定义筛选器,则可以配置dispatcher设置,如

共有1个答案

微生毅
2023-03-14

PrettyFaces像许多URL重写解决方案一样使用RequestDispatcher#forward()将请求转发到所需的目标资源。

Servlet筛选器在没有任何 的情况下映射时,默认情况下只侦听“初始”请求,而不侦听转发的、包含的或错误的请求。

因此,当您在web.xml中映射PrettyFaces之后的另一个servlet过滤器时,默认情况下不会触发它,除非您在request默认值旁边的forward上显式地设置了一个 (如果PrettyFaces实际上不需要执行forward,您应该保留这个过滤器)。

<filter-mapping>
    ...
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>

或者,对于在筛选器上使用@webfilter的情况,使用dispatchertypes属性:

@WebFilter(..., dispatcherTypes = { REQUEST, FORWARD })

或者,如果所讨论的过滤器没有以任何方式改变请求/响应目标,例如设置字符集、使用Gzip压缩、监听异常等,那么您也可以将它放在PrettyFaces之前。

 类似资料:
  • 问题内容: 我知道“ printf”方法可以使用字符串格式。 我的问题是:有没有办法用StringBuilder类创建漂亮的表? 例如: 在该行下,我必须添加各列的值! 做这样的事情:示例,但使用StringBuilder 所以社区希望看到我的答案(我不明白为什么……但是我会以任何方式表示出来!) 现在向我解释,为什么看到我的答案会对我有所帮助?我真的很想看看你的答案! 问题答案: 当然,一种简单

  • 问题内容: 如何以易于阅读的格式(对人类读者而言)显示JSON?我主要是在寻找缩进和空格,甚至可能是颜色/字体样式/等。 问题答案: 漂亮打印是在中本地实现的。第三个参数启用漂亮的打印并设置要使用的间距: 如果需要语法高亮显示,则可以使用一些正则表达式魔术,例如: 在这里查看操作:jsfiddle 或下面提供的完整代码段:

  • 问题内容: 我正在尝试在Python 2.7中安装BeautifulSoup 。我不断收到错误消息,无法理解原因。 我按照说明安装了pip,该pip已安装到以下目录:,然后尝试将其添加到路径中并运行命令。 尝试了两种不同的方法: 都给我这个错误信息: 该外壳突出显示“安装”一词,并说这是无效的语法。 我不知道发生了什么,所以任何帮助将不胜感激。 问题答案: 是 命令行工具 ,而不是Python语法

  • 在JFreeChart中可以为饼图提供复杂、美丽的颜色吗?我的意思是如何实现像链接中显示的图像那样的颜色? 是否可以使用RGB格式,还是需要使用不同的格式?我们怎么做。谢谢你的帮助

  • 问题内容: 我想比较两个文本块,看看在Python中添加/删除/修改了哪些单词/行(类似于Wiki的Diff输出)。 我已经尝试了difflib.HtmlDiff,但是它的输出比漂亮的少。 Python(或外部库)中是否有一种方法可以生成两组文本块的差异的清晰HTML?(不仅是行级别,还包括一行中的单词/字符修改) 问题答案: 有在DIFF匹配补丁从谷歌库。

  • 下面的代码被修改为不包括我的数据库中的任何数据。 然后将其传递到initialize方法中,在该方法中进行表的实际填充。 顺便说一下,Users类如下所示: 该程序按预期工作,我可以看到与图像和VBox的详细信息的表格。 现在我想添加一个TextField来过滤表,过滤参数是标签中的文本。 我明白了,我需要将ObservableList放入FilteredList中,然后放入SortedList中