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

关于APEX 21.2中Display Only项与Disabled文本字段会话状态存储的疑问

关于Oracle APEX 21.2中Display Only项赋值与会话状态的疑惑解答

嘿,这个问题其实是个很容易混淆的细节点,官方文档的描述并没有错,只是咱们得把「渲染阶段赋值」和「会话状态存储」这两个概念区分开~

核心区别:渲染赋值 ≠ 会话状态存储

你通过After Header Computation给Display Only项设置值,这属于页面渲染阶段的前端赋值——只是让这个项在页面上显示出你指定的值,但这个值并不会被存入APEX的会话状态池里。而文档里说的「Display Only项不会存储会话状态」,核心指的是:

  • 页面提交时,Display Only项的值不会被回传给服务器更新会话状态
  • 后续的页面处理(比如Process、动态Action里的PL/SQL)无法通过绑定变量(比如:P1_MY_DISPLAY_ITEM)获取到这个项的值

而Disabled的文本字段则不同:

  • 它在渲染阶段显示的值会被保留在会话状态中
  • 页面提交后,依然能通过绑定变量获取到它的值,因为它属于页面源的一部分,会参与会话状态的维护

验证这个差异的小测试

你可以快速验证一下:

  1. 给Display Only项设置After Header Computation赋值,再添加一个提交按钮
  2. 新建一个Process,在提交后执行DBMS_OUTPUT.PUT_LINE(:P1_DISPLAY_ONLY_ITEM);
  3. 运行页面,提交后查看Process的输出,你会发现值是空的
  4. 把这个项改成Disabled的文本字段,重复操作,就能正常输出赋值的内容

总结

你的操作并没有违背文档描述,只是文档的重点在「会话状态的持久化存储」,而你做的是「渲染阶段的临时显示赋值」——这两者是完全不同的概念哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 14:24:07