我有在会话变量上使用precisionEvaluate((的代码,但是当我调用该函数时,出现此错误:
元素 emp_nextid_ANE_801 在类类型的 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();
}
调用 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.
}