只读状态下提交页面报错:Session state protection violation(P_ITEM)
解决Session state protection violation错误(针对只读字段
P_ITEM) - 确认
Send on page submit属性设置:即便你认为没设置,也要明确将该字段的Send on page submit设为No。部分APEX版本中,未明确设置的字段在只读状态下仍会被提交,触发会话保护校验。 - 提交前移除只读字段的提交参数:添加页面级动态动作,在"Before Submit"事件中执行JavaScript代码,移除只读字段的name属性,避免其被提交:
const item = document.getElementById('P_ITEM'); if (item && item.classList.contains('apex-item-readonly')) { item.removeAttribute('name'); } - 检查页面会话保护级别:进入页面属性的"Security"标签,确认页面的"Session State Protection"设置为Unrestricted。若页面为"Restricted"模式,即便单个字段未开启
Value protected,也可能触发全局校验。 - 替换只读实现方式:将只读属性替换为**禁用(Disabled)**状态,禁用的表单字段默认不会被提交到服务器。如果需要保持只读的视觉样式,可通过自定义CSS调整:
.apex-item-disabled { background-color: #f0f0f0; cursor: default; }
内容的提问来源于stack exchange,提问作者MateuszDurak
相关产品推荐
相关产品推荐

