2010-06-08 12 views
7

In un JSP Ho il seguente campo:Come cancellare un campo di fagioli con le bande

<stripes:text name="email"/> 

Questo campo è nel mio fagioli azione (frammento):

public class CreateClaim implements ActionBean { 

    private String email; 

    public void setEmail(String email) { 
     this.email = email; 
    } 

    public String getEmail() { 
     return email; 
    } 

    public Resolution alc(){ 
     email = "poodle"; 
     return new ForwardResolution("aForward.jsp"); 
    } 

} 

Nel alc() methos Sto impostando l'email come null. Ma quando le pagine rendono il valore del campo di posta elettronica è esattamente come è stato originariamente inserito. C'è un modo per cancellare questo campo una volta e l'evento si è attivato?

Acclamazioni

Dave

risposta

5

Questo ha a che fare con la strategia popolazione del quadro Stripes. Per impostazione predefinita ha un Richiedi prima strategia (a causa della retrocompatibilità con le versioni precedenti), ma lo cambio sempre allo bean first population strategy.

Basta modificare il web.xml per aggiungere un init-param per il filtro Stripes:

<filter> 
    <filter-name>StripesFilter</filter-name> 
    <filter-class>net.sourceforge.stripes.controller.StripesFilter</filter-class> 

    <init-param> 
     <param-name>PopulationStrategy.Class</param-name> 
     <param-value> 
     net.sourceforge.stripes.tag.BeanFirstPopulationStrategy 
     </param-value> 
    </init-param> 
..etc... 
+0

brillante, l'ha funzionato a meraviglia. Ho gestito un lavoro utilizzando l'ambito del flash e un reindirizzamento, ma questo deve essere il modo corretto di gestirlo. – enkor

+0

Uso solo il reindirizzamento dopo le richieste di posta, perché interrompe l'invio accidentale di moduli in caso di utilizzo del pulsante Indietro del browser. In tutti gli altri casi, la BeanFirstPopulationStrategy fa il suo lavoro. – Kdeveloper

Problemi correlati