Domanda
Sto cercando di imparare la nuova sintassi cfscript, così come l'uso cflogin. Sto indovinando che non posso mescolare i tag CF in cfscript, e non vedo uno script equivalente a cflogin, cflogout, cfloginuser.
Devo chiamare un componente che è scritto nella sintassi CF8 al fine di utilizzare cflogin?
public void function onRequest(required string Page) output="true" {
if (StructKeyExists(url,"logout")) {
<cflogout>
}
<cflogin>
local.qryUsr = new Components.Usr.Login(form);
if (local.qryUsr.Recordcount) {
<cfloginuser name="#form.UsrName#" password="#form.UsrPassword#" roles="#local.qryUsr.Roles#">
} else {
request.errorMessage = "Incorrect login";
include login/login.cfm;
return;
}
</cflogin>
include arguments.Page;
}
Soluzione
Non è possibile utilizzare direttamente i tag e gli script. Tuttavia, si può fingere scrivendo wrapper funzione intorno ai tag:
<cffunction name="logout">
<cflogout />
</cffunction>
e chiamare come:
logout();
Ovviamente, questo è un esempio banale. Che ci si vuole specificare le argomentazioni, il tuo valore di ritorno, ecc nel codice vero e proprio.
Nota uno. Non fare questo per una funzione di query generica che accetta l'input dell'utente, in quanto non sarà in grado di utilizzare cfqueryparam
Nota due: io in genere non faccio questo. Se sto scrivendo il codice che dipende da operazioni di tag-solo, io uso la sintassi tag.