Deprecated: Assigning the return value of new by reference is deprecated in /web/htdocs/www.nikosimo.it/home/nikoblog/wp-includes/cache.php on line 36 Deprecated: Assigning the return value of new by reference is deprecated in /web/htdocs/www.nikosimo.it/home/nikoblog/wp-includes/query.php on line 21 Deprecated: Assigning the return value of new by reference is deprecated in /web/htdocs/www.nikosimo.it/home/nikoblog/wp-includes/theme.php on line 540 NikoSimo » 2008» Luglio

Archivio di Luglio 2008

La legge è uguale per tutti, ma alcuni sono più uguali degli altri

Martedì 29 Luglio 2008

Sottotitolo: Il lodo Alfano. 

Costituzione della repubblica italiana
Art. 3:

Tutti i cittadini hanno pari dignità sociale e sono eguali davanti alla legge, senza distinzione di sesso, di razza, di lingua, di religione, di opinioni politiche, di condizioni personali e sociali.
È compito della Repubblica rimuovere gli ostacoli di ordine economico e sociale, che, limitando di fatto la libertà e l’eguaglianza dei cittadini, impediscono il pieno sviluppo della persona umana e l’effettiva partecipazione di tutti i lavoratori all’organizzazione politica, economica e sociale del Paese.

Infatti:

Con 171 voti a favore, 128 contrari e 6 astenuti l’Assemblea del Senato ha approvato il 22 luglio in via definitiva il disegno di legge recante: “Disposizioni in materia di sospensione del processo penale nei confronti delle alte cariche dello Stato” (cosiddetto “Lodo Alfano”: ddl 903). È così convertito in Legge ordinaria il DdL, d’iniziativa del Ministro della giustizia, Angelino Alfano, già approvato dal Consiglio dei Ministri nella seduta del 27 giugno 2008, presentato alla Camera dei deputati il 2 luglio 2008, e approvato dall’Aula il 10 luglio 2008. Il provvedimento dispone che: salvi i casi previsti dagli articoli 90 e 96 della Costituzione, i processi penali nei confronti del Presidente della Repubblica, del Presidente del Senato, del Presidente della Camera e del Presidente del Consiglio sono sospesi dalla data di assunzione e fino alla cessazione della carica o della funzione. La sospensione si applica anche ai processi penali per fatti antecedenti l’assunzione della carica o della funzione. L’imputato può rinunciare in ogni momento alla sospensione. La sospensione non impedisce al giudice di assumere le prove non rinviabili. La sospensione opera per l’intera durata della carica o della funzione e non è reiterabile, salvo il caso di nuova nomina nel corso della stessa legislatura, né si applica in caso di successiva investitura in altra delle cariche o delle funzioni.
Fonte: Newsletter Governo italiano

Spring AbstractWizardFormController

Venerdì 4 Luglio 2008

Mi è capitato di dover implementare un controller di Spring molto particolare che estendesse l’AbstractWizardFormController.
La peculiarità di questo controller è costituita dalla capacità di “spalmare” i dati inseriti in un form su più viste, utilizzando un unico oggetto come contenitore (command) che viene popolato di vista in vista.
Ho trovato un modo per validare i dati alla bisogna durante il passaggio da una pagina all’altra della mia web application ma ho avuto un problema, tali validazioni venivano eseguite anche alla pressione del tasto “indietro” generando un errore che mi faceva perdere i dati precedentemente inseriti; ho risolto facendo l’override del metodo suppressValidation nella mia classe controller.
Di seguito illustro come ho configurato i validatori e implementato i metodi del controller.
Questa è la dichiarazione del mio bean in Spring:

<bean name=mioWizard
 class=it.nikosimo.applicazionediprova.controllers.
WizardController>
 <property name=validators>
  <list>
   <ref bean=validatore0/>
   <ref bean=validatore1/>
  </list>
 </property>
</bean>

Qui dichiaro i miei validatori:

<bean name=validatore0
class=it.nikosimo.applicazionediprova.validators.Validatore0/>
<bean name=validatore1
class=it.nikosimo.applicazionediprova.validators.Validatore1/>

E’ importante ricordare l’ordine in cui i validatori sono stati iniettati nel bean, essi vengono inseriti in un array e possono essere richiamati esclusivamente tramite l’indice (0 based).

Tralasciando l’implementazione dei validatori passo a illustrare il metodo validatePage del mio controller, al submit di ogni pagina viene richiamato il validatore corrispondente:

@Override
protected void validatePage(Object command, Errors errors, int pageN) {
 switch(pageN){
 case 0:
  getValidators()[0].validate(command, errors);
  break;
 case 1:
  getValidators()[1].validate(command, errors);
  break;
 }
}

Per concludere ecco l’implementazione di suppressValidation.

@Override
protected boolean suppressValidation(HttpServletRequest request,
  Object command) {
 boolean suppress = false;
 if (getCurrentPage(request) > getTargetPage(request, getCurrentPage(request))){
  suppress = true;
  TerraCivica terraCivica =(TerraCivica)command;
  System.out.println(terraCivica.getProvincia());
 }
 return suppress;
}

In questo modo la validazione viene eseguita solo durante le transizioni in avanti e ignorata durante le transizioni verso pagine precedenti.