Scaffolding を使用してページを作成する場合、ページ名は最大 20 文字しか使用できません。その検証をオーバーライドする他の方法はありますか? 前もって感謝します....
2 に答える
デフォルトのスキャフォールディング (/libs/wcm/scaffolding/components/scaffolding/body.jsp) の 242 行目に、次のコードがあります。
var title = frm.findField("./jcr:content/jcr:title");
if (title) {
var hint = title.getValue();
if (hint) {
params[":nameHint"] = hint;
}
}
このコードから取り除かなければならない主なものは、params[":nameHint"] です。このパラメーターは、ページを作成するときに送信されます。nameHint パラメーターは、ノード名を x 文字数に制限する原因です。nameHint が送信されると、JCR の名前をフォーマットするフィルターを通過します。これは、有効な JCR 名を保証するために行われます。それはあなたの保護のためです。詳細については、このページの「ノード名作成のアルゴリズム」セクションを参照してください: http://sling.apache.org/site/manipulating-content-the-slingpostservlet-servletspost.html
この問題を上書きするには、params[":nameHint"] を params[":name"] に変更する必要があります。ただし、これによって有効な JCR 名が保証されるわけではないことに注意してください。これが懸念される場合は、タイトルを有効な JCR 名に変更するコードをいつでも修正してから、:name パラメータに設定できます。
もう1つ、私はこれを読みました-「:nameHintがフィルタリングされると、名前が構成可能な最大長にカットされます(デフォルトは20文字です)」。ただし、これがどのように構成されているかわかりません。
CQ POST サーブレットを構成します..そして、あなたは良いはずです