Perl: Espansione dei Template


Questo componente di occupa di trasformare la risposta ottenuta dal Soap nel formato previsto dal parser XML nella pagina HTML che verrā mostrata all'utente: si utilizzano i Template HTML.

Si tratta di file in formato HTML per i quali viene esteso il markup standard HTML aggiungendo alcuni tag:

  • <TMPL_VAR>
  • <TMPL_LOOP>
  • <TMPL_INCLUDE>
  • <TMPL_IF>
  • <TMPL_ELSE>

Il file in formato HTML che utilizza questi tag viene normalmente predisposto da chi si occupa della presentazione.

Per l'espansione del template viene utilizzato il modulo HTML::Template che consente utilizzare dei Template HTML in modo semplice e naturale: l'utilizzo di questo modulo prevede di fornire i valori per variabili, loop e decisioni previsti dal Template e quindi poter applicare tali valori al markup aggiuntivo per poter ottenere la pagina HTML.

I Template HTML prevedono inoltre le regole per presentare a video eventuali errori riportati dal Server Soap nel formato previsto dall'interfaccia SOAP.

Esempio di Template HTML


<!DOCTYPE HTML SYSTEM>
<HTML>
<HEAD>
  <TITLE>
    Cambi della divisa <TMPL_VAR NAME="answer.c_div"> - <TMPL_VAR NAME="answer.dsc_lun">
  </TITLE>
</HEAD>
<BODY>
  <DIV ALIGN="center">
    <TMPL_IF NAME="answer.c_div">
      <H1>
        Cambi della divisa <TMPL_VAR NAME="answer.c_div"> - <TMPL_VAR NAME="answer.dsc_lun">
      </H1>
      <TABLE border="yes" cellpadding=5>
      <TR>
        <TH align="center">Data</TD>
        <TH align="right">Valore</TD>
      </TR>
      <TMPL_LOOP NAME="answer.cambi">
        <TR>
          <TD><TMPL_VAR NAME="cambio.dt"></TD>
          <TD><TMPL_VAR NAME="cambio.valore"></TD>
        </TR>
      </TMPL_LOOP>
      </TABLE>
      <TMPL_ELSE>
        <H1>
            ATTENZIONE
        </H1>
        <H3>
            Si č probabilmente verificato un errore nella preparazione della
            pagina richiesta.
            La tabella che segue ...
        </H3>
        <TABLE border="yes" cellpadding=3>
            <TR><TD>Fault Code</TD><TD><TMPL_VAR NAME="Fault.faultcode"></TD></TR>
            <TR><TD>Fault String</TD><TD><TMPL_VAR NAME="Fault.faultstring"></TD></TR>
            <TR><TD>Actor</TD><TD><TMPL_VAR NAME="Fault.detail.actor"></TD></TR>
            <TR><TD>Content</TD><TD><TMPL_VAR NAME="Fault.detail.content"></TD></TR>
        </TABLE>
        </TMPL_IF>
    </DIV>
</BODY>
</HTML>
dst.3soupr6 • LastModified: 14-9-2007 • Gabriella Bozzolo