ColdFusion 将隐藏形式变量转换为结构

ColdFusion convert hidden form variables to a structure

我正在开发的应用程序在页面初始加载时设置了隐藏的输入变量。需要跨所有页面访问变量。不将这些转换为会话变量的原因是用户可以打开另一个具有不同参数的浏览器并将这些值作为隐藏输入传递,使其正常工作。为了摆脱这些隐藏的输入,最好的替代方法是什么。我尝试将所有变量转换为结构,但再次需要将结构 posted 作为表单提交的一部分,以使其可用于后续pages.Another 此应用程序的缺点是使用 frames.I 没有任何代码 post。

听起来好像您希望与同一网络会话关联的不同浏览器实例维护它们自己的不同数据集。通过传递 formurl 变量来做到这一点似乎是个坏主意。

您可以使用的一种方法是,onSessionStart(或根据需要)在用户会话中创建一个结构来保存数据实例。例如

session.data = {
    someRandomKey: {
        valueA: 42,
        valueB: "Porridge"
    }
}

然后只需将 someRandomKey 作为隐藏的 form 字段或查询字符串参数传递。现在,当他们提交表单以更新变量时,您可以使用隐藏表单字段中的 id 从 session.data 中找到合适的结构。

当用户需要这个表单的新实例时,给他们一些方法,比如 link 或按钮,创建一个新的唯一键,用这个键在 session.data 中插入一个结构并使用任何需要的默认值填充它,然后再次加载传递新 ID 作为隐藏表单字段或查询字符串参数的表单。