Christian Castelli
a- a+

Controlli di flusso

Redirezionamento attraverso <cflocation>

Il tag <cflocation> viene usato per rimandare l'utente su una pagina differente. Viene usato comunemente quando una pagina è stata spostata oppure quando un utente non ha i privilegi necessari per vedere la pagina richiesta. Un esempio di utilizzo è visibile nel codice sottostante:

<cflocation url="http://www.webmasterpoint.org">

isDefined() e <cfparam>

ColdFusion restituisce un errore quando gli si viene chiesto di valutare una variabile non inizializzata. In certi casi, vorrete controllare se una variabile è stata definita prima di utilizzarla. E' possibile usare in tal caso la funzione isDefined():

<cfif isDefined("Form.firstname")>   <cfoutput>Hello, #Form.firstname#!</cfoutput><cfelse>   Hello, stranger!</cfif>

In altri casi, vorrete settare un valore di default per la variabile in caso venga utilizzata prima di esser inizializzata. Si userà in questo caso <cfparam>:

<cfparam name="Form.firstname" default="stranger">  <cfoutput>Hello, #Form.firstname#!</cfoutput>

Nel esempio qui sopra, se Form.firstname è stata definita prima che il tag <cfparam> venga raggiunto, allora il tag <cfparam> verrà ignorato, in caso contrario verrà assegnato alla variabile il valore di default stranger.

Cicli

I cicli vengono usati per iterare blocchi di codice. La seguente sezione mostra la sintassi per alcuni tipi differenti di cicli.

Un ciclo indice si comporta come un ciclo for per altri linguaggi. Esegue dei passi attraverso un processo basato su un certo tipo di conteggio:

<cfloop index="count" from="1" to="5" step="2">   <cfoutput>#count#</cfoutput></cfloop>

Il codice soprastante produrrà in output 1 3 5.

Un ciclo condizionale è come un ciclo while in altri linguaggi. Continua ad iterare attraverso un processo fintanto che una specifica condizione continua ad esser vera:

<cfset count=1>  <cfloop condition="count LTE 5">   <cfoutput>#count#</cfoutput>   <cfset count = count + 2>  </cfloop>

Il codice soprastante produrrà in output sempre 1 3 5.

Le liste sono semplici stringhe delimitate da uno specifico carattere o da un set di caratteri. Di default, il delimitatore è la virgola. ColdFusion possiede molte funzioni per gestire le liste.
<cfloop> può essere usato per scorrere una lista, eseguendo qualche funzione su ciascun elemento della lista:

<cfset numlist="1,2,3,4,5">  <cfloop index="num" list="#numlist#">   <cfoutput>#num#</cfoutput>  </cfloop>    <cfset beatles="paul john ringo george">  <ul>  <cfloop index="beatle" list="#beatles#" delimiters=" ">   <li><cfoutput>#beatle#</cfoutput></li>  </cfloop>  </ul>

Il primo ciclo produrrà in output 1 2 3 4 5, il secondo una lista non ordinata dei nomi dei Beatles.

<cfloop> può essere usato anche per iterare altri tipi di dati, includendo query e strutture. Alcuni di questi usi avanzati di <cfloop> verranno trattati in altre lezioni di questo corso.

Il tag <cfbreak> viene usato per interrompere i cicli prima che abbiano finito la loro normale processazione. La sintassi è la seguente:

<cfloop index="count" from="1" to="5" step="1">   <cfoutput>#count#</cfoutput>   <cfif count GTE 3>    <cfbreak>   </cfif></cfloop>

Il tag <cfsavecontent> fornisce un altro meccanismo per immagazzinare dati in una variabile. La sintassi è la seguente:

<cfsavecontent variable="var_name">   Variable value</cfsavecontent>

Un fattore importante da ricordare riguardante <cfsavecontent> è che dentro questo tag può starci dell'altro codice ColdFusion, come espressioni condizionali e cicli. Questo rende semplice salvare i risultati di una parte di codice complicata dentro una stringa di testo senza appendere ilrisultato in una variabile tramite <cfset>.

Conclusioni

In questa lezioni avete imparato a lavorare con i blocchi condizionali if-else if-else e switch, a riconoscere ed usare i cicli e a redirezionare l'utente su un altra pagina con <cflocation>.



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Pier Paolo
Condividi le tue opinioni su questo articolo!