Session 使用coldfusion删除会话/结构

Session 使用coldfusion删除会话/结构,session,coldfusion,struts,Session,Coldfusion,Struts,我有一个会话,它是一个结构集合 课时.班.成绩[关键] 也许是这样 SESSION.squad.achievements[2010] = "swam the english channel"; SESSION.squad.achievements[2009] = "ran a marathon"; SESSION.squad.achievements[2008] = "cycled Le Tour"; 我的代码暂时删除结构,但不删除会

我有一个会话,它是一个结构集合

课时.班.成绩[关键] 也许是这样

SESSION.squad.achievements[2010] = "swam the english channel";
SESSION.squad.achievements[2009] = "ran a marathon";
SESSION.squad.achievements[2008] = "cycled Le Tour";
我的代码暂时删除结构,但不删除会话,因此刷新时该值仍然存在

<cfset myYear = #myYear# />
<cfset #StructDelete(SESSION.squad.achievements, myYear)#>

您知道如何删除此值吗?

尝试使用cflock

<cflock timeout="30" throwontimeout="No" type="EXCLUSIVE" scope="SESSION">
    <cfset StructDelete(SESSION.squad.achievements, myYear)>
</cflock>


能否指定要删除的值?在这里,您的代码应该删除year=2010的值SESSION.squad.Acquisitions[2010]=“横渡英吉利海峡”否?另外,您如何测试该值是否已被删除?可能是您正在执行的刷新操作导致再次设置该值。。。在delete语句之前和之后转储会话,以便查看它是否已被实际删除。另外,验证myYear的值作为
看起来根本不正确。Ross或Lucas,这是如何解决问题的?首先是一个令人困惑的问题,因为它没有足够的信息,但我看不出cflock在这种情况下如何发挥任何作用。删除代码是通过jquery/ajax调用的,值#myYear#是通过post传递的。我以前从未使用过cflock,但它似乎锁定了代码,因此在刷新页面之前,该值会被删除。我的代码在使用之前看起来很好,也许Lucas知道更多关于如何工作的信息。在Ben Nadel的网站上有一点关于它的信息——实际上读到它似乎有点像黑客,我需要做的可能是做一些错误检查,确保在调用刷新之前删除会话支柱。它现在起作用,但会回到它的更坚实的解决方案