You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSF中删除dataTable最后一行后@PostConstruct重复调用异常问题

问题原因分析
  • 视图状态与数据源绑定失效:JSF的dataTable依赖后端集合数据源(比如List)渲染行组件。当删除最后一行后,数据源变为空集合,视图树中的dataTable失去可迭代的行节点,导致视图状态(ViewState)和后端Bean的状态完全脱节。
  • Bean重复实例化触发异常:如果你的Bean是@RequestScoped或者@ViewScoped(视图作用域因状态不匹配失效),JSF处理后续删除请求时,会因无法匹配有效视图状态而重新创建Bean实例,进而重复调用@PostConstruct方法。此时因无选中行,请求参数codigouser为空,尝试转换为数字类型时就会抛出NumberFormatException。
  • 添加新行后的状态修复:添加新号码后,数据源重新拥有有效数据,dataTable的视图树和后端Bean状态重新对齐,后续删除操作能正常传递codigouser参数,Bean无需重新初始化,因此不会再触发异常。

内容的提问来源于stack exchange,提问作者Paulo Henrique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 04:00:27