468x60

giovedì 26 gennaio 2012

Escape SQL strings in Java

Capita spesso di dover elaborare stringhe di testo per eliminare i caratteri speciali. Per questo scopo possiamo avvalerci della classe StringEscapeUtils di Apache Commons.

Ecco un esempio:
import org.apache.commons.lang.StringEscapeUtils;

public class StringUtilsEscapeExampleV1 {

  public static void main(String args[]) {
    String unescapedJava = "Are you for real?";
    System.err.println(
      StringEscapeUtils.escapeJava(unescapedJava));

    String unescapedJavaScript = "What's in a name?";
    System.err.println(
      StringEscapeUtils.escapeJavaScript(unescapedJavaScript));

    String unescapedSql = "Mc'Williams";
    System.err.println(
      StringEscapeUtils.escapeSql(unescapedSql));

    String unescapedXML = "";
    System.err.println(
      StringEscapeUtils.escapeXml(unescapedXML));

    String unescapedHTML = "";
    System.err.println(
      StringEscapeUtils.escapeHtml(unescapedHTML));

  }
}
Oppure, nei casi più semplici, possiamo usare un semplice replaceAll() che sostituisce tutte le occorrenze di un dato carattere. Ad esempio, quando si lavora con stringhe SQL, causano problemi i singoli apici ( ' ), che è possibile rimpiazzare semplicemente con stringa.replaceAll("'", "''")

mercoledì 25 gennaio 2012

Aggiungere elementi ad una Table in Vaadin

Vediamo come aggiungere elementi ad una Table in Vaadin

Innanzitutto bisogna definire i campi della tabella:
table.addContainerProperty("field1", String.class, null);
table.addContainerProperty("field2", Integer.class, null);

Poi, per aggiungere elementi alla tabella, possiamo specificarne il numero di riga:
table.addItem(new Object[] { field1TextField.getValue(), field2TextField.getValue(), new Integer(1));
table.addItem(new Object[] { field1TextField.getValue(), field2TextField.getValue(), new Integer(2));

oppure impostare null come numero di riga, in questo modo verrà effettuato un append a fine tabella:
table.addItem(new Object[] { field1TextField.getValue(), field2TextField.getValue(), null);

mercoledì 18 gennaio 2012

Modifica titolo pagina "Categorie" in Virtuemart

Per modificare il titolo della pagina "Categorie" di Virtuemart bisogna modificare il file /administrator/components/com_virtuemart/languages/common/italian.php

lunedì 9 gennaio 2012

Vaadin Table getValue vs getItem



In Vaadin ci sono due modi per ottenere informazioni da una riga selezionata su una tabella al suo click:

Metodo1
table.addListener(new ItemClickListener () {
@Override
public void itemClick(ItemClickEvent event) {
Item item = table.getItem(event.getItemId());
Object myObjectProperty = item.getItemProperty("myProperty").getValue();
}
});

Metodo2
table.addListener(new ItemClickListener () {
@Override
public void itemClick(ItemClickEvent event) {
Object rowId = table.getValue();
Object myObjectProperty =  table.getContainerProperty(rowId, "myProperty").getValue();
}
});

Alcune volte il metodo2 mi ha dato problemi, restituendo null come rowId.


giovedì 5 gennaio 2012

Vaadin Checkbox Listener

Utilizzando il componente Checkbox di Vaadin ho avuto qualche problema con i listener quando il componente Checkbox lo utilizzavo anche come campo di una tabella.

Ho dovuto sostituire il listener:


checkbox.addListener(new Property.ValueChangeListener() {
   public void valueChange(ValueChangeEvent event) {
    //esegui codice
   }
});


con il listerer:


checkbox.addListener(new ClickListener() {

@Override
public void buttonClick(ClickEvent event) {
boolean enabled = event.getButton().booleanValue();
if(enabled) {
//esegui codice
} else {
//esegui codice
}
}
});


venerdì 23 dicembre 2011

Accesso negato alla view in MySQL

Alcune volte mi è capitato di avere problemi nell'accesso a delle view in MySQL con alcuni utenti. Ho scoperto che il problema era dovuto al definer della view, che era DEFINER=`root`@`localhost`.

giovedì 22 dicembre 2011

Custom Themes in Vaadin

Per creare temi customizzati in Vaadin è possibile farlo in modo semplice con Eclipse seguendo questa guida https://vaadin.com/book/-/page/themes.eclipse.html. In seguito bisogna editare il file styles.css presente nella cartella WebContent/VAADIN/themes.
468x60

Cerca su Google

Cerca nel Blog con Google