Java JCR是否支持在节点名称中添加'&'字符?
JCR节点名称能否包含
&符号? 结论:默认情况下不行。
&属于JCR规范定义的无效节点名称字符,底层存储会自动将这类特殊字符替换为合法字符(比如你遇到的---)。原因:JCR(Java Content Repository)的节点名称有严格的字符限制,
&、/、:、[、]等符号都被明确列为非法字符。主流的JCR实现(如Jackrabbit)会自动对非法字符进行替换处理,避免节点名称不符合规范导致存储异常。替代方案:如果业务需求必须保留
&的显示效果,可以通过自定义编码逻辑实现:- 写入节点前:将
&替换为一个合法的唯一占位符(例如__AMPERSAND__) - 读取节点时:再将占位符转换回
& - 注意:要确保占位符不会与正常业务名称冲突,且在所有读写节点的流程中统一应用该转换规则
- 写入节点前:将
内容的提问来源于stack exchange,提问作者Maczosss
相关产品推荐
相关产品推荐

