Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我需要在PrettyFaces中为此创建自定义正则表达式模式吗_Java_Jsf_Url Rewriting_Prettyfaces - Fatal编程技术网

Java 我需要在PrettyFaces中为此创建自定义正则表达式模式吗

Java 我需要在PrettyFaces中为此创建自定义正则表达式模式吗,java,jsf,url-rewriting,prettyfaces,Java,Jsf,Url Rewriting,Prettyfaces,当我有以下映射时,是否需要创建自定义正则表达式模式来匹配URL(示例): /问题/已批准/#{viewOption}/ /approved.xhtml 当用户未以“/”结尾URL时,viewoption部分也应匹配的位置? 如果不添加viewOption部分,是否可以提供某种默认值 如果viewOption是一个枚举,是否可以将参数小写?现在,我必须用大写字母来编写它。您可以使用自定义正则表达式来执行这种类型的操作,但我建议使用url重写规则来附加一个缺少的尾部斜杠。你应该选择一个URL(末

当我有以下映射时,是否需要创建自定义正则表达式模式来匹配URL(示例):


/问题/已批准/#{viewOption}/
/approved.xhtml
当用户未以“/”结尾URL时,viewoption部分也应匹配的位置? 如果不添加viewOption部分,是否可以提供某种默认值


如果viewOption是一个枚举,是否可以将参数小写?现在,我必须用大写字母来编写它。

您可以使用自定义正则表达式来执行这种类型的操作,但我建议使用url重写规则来附加一个缺少的尾部斜杠。你应该选择一个URL(末尾有或没有“/”),否则你实际上是在用两个不同的地址提供相同的资源,你将受到搜索引擎和其他爬虫程序的惩罚

为此,我将使用如下重写规则:

<rewrite match="/questions/approved/[^/]+" trailingSlash="append" />
您需要创建自己的变压器,因为它们尚未在库中定义,但这是一般的想法。它比目前使用PrettyFaces可能实现的功能强大得多,但不提供相同的JSF导航集成,而且配置起来有点棘手

我希望这有帮助,
~Lincoln

谢谢你花时间和精力写这封信:)回答得好!
<url-mapping id="approvedQuestions">
    <pattern>/questions/approved/#{params.viewOption}/</pattern>
    <view-id>/approved.xhtml</view-id>
    <action>#{params.loadViewOption}</action>
</url-mapping>
.addRule(Join.path("/questions/approved/{viewOption}").to("/approved.xhtml")
.where("viewOption")
.matches("[^/]+/?")
.transformedBy(TrailingSlash.append())
.transformedBy(To.upperCase())