使用Quarkus Qute渲染Set首个元素时触发异常求助
解决Quarkus Qute渲染Set集合第一个元素的报错问题
问题根源
java.util.LinkedHashSet是有序集合,但不支持通过索引下标访问元素。Qute模板中使用[0]的语法时,会尝试访问集合的0属性,而Set并没有这个属性,因此触发Property "0" not found异常。
可行解决方案
方案1:后端将Set转换为List
在业务代码中把imageUrls这个Set转为List,让它支持索引访问:
// 修改实体类的getImageUrls方法 public List<String> getImageUrls() { return new ArrayList<>(this.imageUrls); }
模板代码无需修改,保持原写法即可:
<img src="{appDetails.imageUrls[0]}" />
方案2:模板中通过循环取第一个元素
利用Qute的循环语法,迭代一次后立即终止,获取第一个元素:
{#for url in appDetails.imageUrls} <img src="{url}" /> {#break} {/for}
空值处理优化
如果集合可能为空,建议添加判断避免空渲染:
{#if appDetails.imageUrls} {#for url in appDetails.imageUrls} <img src="{url}" /> {#break} {/for} {/if}
内容的提问来源于stack exchange,提问作者pvrforpranavvr
相关产品推荐
相关产品推荐

