当我们使用脚手架创建页面时,页面名称最多只能包含 20 个字符,还有其他方法可以覆盖该验证吗?提前致谢....
2 回答
在第 242 行的默认脚手架 (/libs/wcm/scaffolding/components/scaffolding/body.jsp) 中,您会看到以下代码:
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 参数。
另一件事,我确实读过这个 - “当 :nameHint 被过滤时,它会将名称削减到可配置的最大长度(默认为 20 个字符)”。我找不到这是如何配置的。
配置 CQ POST servlet.. 你应该很好