在类coldfusion.runtime.J2eeSessionScope类型的Java对象中未定义元素

时间:2017-04-12 04:52:35

标签: coldfusion

我的代码在会话变量上使用了precisionEvaluate(),但是当我调用该函数时,会出现以下错误:

  

元素emp_nextid_ANE_801在类型为class的Java对象中未定义   coldfusion.runtime.J2eeSessionScope。

在代码中,有一个条件是使用structKeyExists()检查此会话变量,但它仍然显示错误。有谁知道它为什么还有错误?

以下是一些代码:

if( structKeyExists(session,'emp_nextid_#app().getCurrentAgentID()#_#officeID#') 
   AND  val(session['emp_nextid_#app().getCurrentAgentID()#_#officeID#']) GT 0) {

    var nextID = precisionEvaluate(session['emp_nextid_#app().getCurrentAgentID()#_#officeID#']);
    var qData = new Query();
    var sql = "SELECT 1 FROM Employee
               WHERE pers_id = :nextid";
    qData.addParam(name="nextid", value=nextID, cfsqltype="CF_SQL_BIGINT");
    var result = qData.execute(sql=sql).getResult();
}

1 个答案:

答案 0 :(得分:1)

调用app()。getCurrentAgentID()可能正在生成动态变化的值。无论如何,您可以将代码段改进为:

var key = 'emp_nextid_' & app().getCurrentAgentID() & '_' & officeID;
if( structKeyExists(session,key) AND val(session[key]) GT 0) {

    var nextID = precisionEvaluate(session[key]);
    ...
    etc.
}