Welche Funktion ist gemeint, format/ersetzen Sie {0} {1} Parameter werden in einem string in Grails/Groovy?
Ich fange gerade mit Groovy/Grails
Bemerkte ich die Fehlermeldungen erhalten Sie beim überprüfen einer form wie folgt Aussehen:
Property [{0}] of class [{1}] cannot be blank
Zum Beispiel diese code-dump-Fehler auf der Konsole
s.errors.allErrors.each
{
println it.defaultMessage
}
Nun, es.Argumente enthält, die Argumente müssen hier eingetragen werden.
Das problem ist, ich finde keine Methode in der Grails oder Groovy-Dokumentation, Formate Zeichenfolgen basierend auf Parameter wie {0}, {1} und ersetzt Werte aus einem array
Brauche ich so etwas wie python - %
Was ist die richtige Art und Weise zu formatieren, diese Fehler strings, so werden die Parameter substituiert richtig?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Marker tatsächlich ersetzt die standard-java.text.MessageFormat-APIs. Wenn Sie die Anzeige der Nachrichten mit Gral ' s g:message-tag, wird es in die Lücken zu füllen, wenn Sie übergeben einen geeigneten args="..." - Attribut:
Unter bestimmten Umständen (in GSP-Seiten und vom Controller IIRC) Sie können rufen Sie das tag wie eine Funktion:
Beachten Sie, dass der Wert zu liefern, wie die Meldung der code ist nur auf einer symbolischen string-Konstante. Die eigentliche übersetzung (der text der Nachricht mit den "Lücken" in der es gelesen werden, die das framework mit Spring ist wiederaufladbar resource-bundles.
Wenn alle, die Sie tatsächlich haben, ist eine übersetzung von text können Sie die Nachricht aufrufen Formatierung APIs direkt. Siehe zum Beispiel:
Schauen, was Groovy für Sie tun können, mit ein wenig meta-Programmierung.
MessagesBundle_en_US.Eigenschaften:
ResourceBundleWithSugar.groovy:
Ausgabe: