JXLS 2.9.0同一注释标记内组合jx:each与jx:if条件的实现方案
JXLS 2.9.0 同单元格组合jx:if与jx:each指令的实现方案
在同一单元格注释内组合jx:if校验和jx:each遍历的写法完全可行,是JXLS原生支持的指令嵌套规则,可直接解决空/Null列表触发解析异常的问题。
具体配置规则如下:
- 同一单元格注释内可按「外层逻辑在前、内层逻辑在后」的顺序书写多个指令,JXLS解析时会自动按顺序嵌套执行,不需要拆分到不同单元格
- 适配空列表校验的单元格注释正确写法:
jx:if(condition="myList.items != null && !myList.items.isEmpty()", lastCell="B3") jx:each(items="myList.items" var="item" lastCell="B3")
- 配置注意事项:
- 两个指令的
lastCell属性必须设置为相同的范围值,统一覆盖遍历逻辑涉及的最末单元格,否则会出现模板区域错位、旧内容残留的问题 - 条件判断需同时覆盖参数为null、参数为空列表两种场景,避免漏判
- 单元格内原有的
${item}取值表达式不需要做任何修改,保持原有配置即可
- 两个指令的
这种写法相比修改JXLS全局配置、自定义指令的方案侵入性更低,不需要调整现有业务传参逻辑,完全兼容2.9.0版本的所有解析规则。
内容的提问来源于stack exchange,提问作者guilieen
相关产品推荐
相关产品推荐

