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;
}
È stato utile?

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.

Altri suggerimenti

Come nota a margine, c'è un piccolo sforzo in corso oltre a CFLib.org per creare funzioni per tutti CF Tags. controllare CFMLLib per maggiori dettagli

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top