我的代码在会话变量上使用了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();
}
答案 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.
}