Ho un'applicazione JSF2 che utilizza Spring 3.0. Ho un fagiolo che ha una proprietà di tipo List<Double>
con 5 elementi:Ingresso JSF non riuscito a Errore di doppia conversione
public class MyBean {
private List<Double> values;
public List<Double> getValues() {
if (values == null) {
values = new ArrayList<Double>(5);
for (int i = 0; i < 5; i++) {
values.add(null);
}
}
return values;
}
public void setValues(List<Double> values) {
this.values = values;
}
}
Nel mio file xhtml ho questo per ogni elemento:
<h:inputText id="value1" value="#{myBean.values[0]}">
<f:convertNumber pattern="#########0.##" />
</h:inputText>
Il mio scopo è quello di recuperare i valori come ArrayList
. Inoltre, non voglio mantenere le singole proprietà per ogni membro. Un requisito futuro renderà dinamico il numero totale del valore (non il 5 codificato), quindi potrei usare un ciclo per definire gli input per ciascun elemento, ma non concentrarmi su questo ora.
Quindi ecco il problema. Quando invio la pagina, la conversione non è corretta. Ad esempio, se il mio input era 1, 2.0, 3 (e 2 input vuoti per gli ultimi due elementi, non sono obbligatori), sto ricevendo il seguente array [1, "2.0", 3, "", ""] , dove 1 e 3 sono di tipo BigDecimal
e 2.0 e gli ultimi 2 membri sono stringhe vuote. Ciò causa ClassCastexception
ogni volta che provo a ottenere un membro dell'elenco di matrici, perché per definizione è generico e il tipo generico è Double
. BigDecimal
non può essere trasmesso a Double
; è ovvio che anche i tentativi di cast stringa falliranno. Ora, mi sarei aspettato che almeno tutti i membri venissero convertiti dal convertitore e fossero dello stesso tipo. Inoltre, ho bisogno di un modo per ottenere correttamente come Double. Ho anche provato il seguente:
<h:inputText id="value1" value="#{myBean.values[0]}">
<f:converter id="javax.faces.Double" />
</h:inputText>
ma ha causato un'eccezione:
<f:converter> Default behavior invoked of requiring a converter-id passed in the constructor, must override ConvertHandler(ConverterConfig)
devo ammettere io sono nuovo alla tecnologia JSF, ma per quanto riguarda this articolo è interessato, ci fu non c'è bisogno di scavalcare nulla. Qualsiasi aiuto sarà apprezzato
sì, anzi con 'convertedId' ho capito di lavoro. Sfortunatamente sono stato fuorviato dall'URL che ho fornito sopra. Grazie per la risposta rapida. –