ZK框架.properties文件属性值插入换行符的问题(ZK 6)
ZK 6 中.properties文件属性值插入换行符的有效方案
方法一:使用HTML换行标签<br>
- 修改ZUL中的标签组件,开启HTML内容解析:
<label value="${c:l('mylabel.linebreakedlabel')}" content="html"/>
- 在.properties文件中,将需要换行的位置替换为
<br>:
mylabel.linebreakedlabel=Hello this label should be<br>breaked into two lines
方法二:使用\n配合CSS样式保留换行
- 在.properties文件中,用
\n标记换行位置:
mylabel.linebreakedlabel=Hello this label should be\nbreaked into two lines
- 修改ZUL中的标签组件,添加CSS样式让浏览器识别换行:
<label value="${c:l('mylabel.linebreakedlabel')}" style="white-space: pre-line;"/>
为什么之前的方案无效
- 反斜杠换行:.properties文件的反斜杠仅用于编辑时属性值跨多行,解析后会自动合并内容,不会保留换行符,因此第二行内容不会单独显示。
- 大括号包裹多行:ZK的资源加载机制不会解析大括号内的换行,反而会将大括号作为属性值的一部分渲染,同时多行内容会被合并,导致第二行丢失。
\n:默认情况下标签组件以纯文本模式渲染,\n会被当作普通字符显示;若未设置white-space样式,浏览器会自动忽略换行符,导致换行失效。<br>:未开启content="html"时,组件会将HTML标签转义为纯文本直接显示,而非解析成换行效果。
内容的提问来源于stack exchange,提问作者emotionalDamage
相关产品推荐
相关产品推荐

