はい!絶対。
これを行う最も簡単な方法は、おそらく正規表現.matches()
制約付きのパラメーターを使用することです。
cb.addRule(
Join.path('/{path}').to("/test.xhtml"))
.where("path")
.matches("(?i)test"); // <-- your path regex pattern goes here
Resource
カスタム変換でorFilesystem
条件を使用して、これをよりグローバルなルールにすることもできます。
public class Lowercase implements Transposition<String>
{
@Override
public String transpose(Rewrite event, EvaluationContext context, String value)
{
return value.toLowerCase();
}
}
それで...
.addRule(Join.path("/{path}").to("/{path}.xhtml"))
.when(Resource.exists("{path}.xhtml"))
.where("path")
.matches("[a-zA-Z]+")
.transposedBy(new Lowercase())
もちろん、これは xhtml ファイルがすべて小文字の命名スキームを使用していることを前提としています。
さらに先に進みたい場合は、独自のカスタム.when()
条件を作成して、最も可能性の高い一致を見つけてから、転置の「見つかった/正しい」値を置き換えることができます。{path}