So zeigen Sie ein einzelnes Attribut in einer Selectbox in einer von ROO generierten Anwendung an

7

Ich stehe momentan auf Spring-Roo und Spring-MVC. Ich habe eine ziemlich einfache Anwendung, die Roo für mich generiert hat. Es besteht aus zwei Entitäten, Record und Car, wobei Record einen Verweis auf ein einzelnes Auto enthält.

Nach der Ersteinrichtung wechsle ich eines der zu verwendenden Ansichten: Wähle ein Combobox aus und zeige es an, um verfügbare Autos auszuwählen und sie zu einem Datensatz hinzuzufügen.

%Vor%

Dieses Tag bereitet mir Kopfschmerzen. Wie bisher zeigt die Comboxbox alle verfügbaren Autos an ... aber sie zeigt alle Attribute an (zB "Car 1 Di Jan 18 00:00:00 CET 2011 Friver1"). Ich will nur, dass die Combobox nur das name-Attribut ("Car 1") zeigt.

Innerhalb des Tags gibt es nur das "itemValue" -Attribut, aber dies rendert nur den Wert, der in den request-param geschrieben wird ... Ich brauche etwas wie "displayValue", wo ich auf das Java-Feld zeigen kann wird zur Anzeige verwendet.

Wie kann ich das erreichen? Danke

    
lostiniceland 13.01.2011, 21:42
quelle

4 Antworten

8

Spring Roo (mit Spring MVC-Funktionalität) bietet Application Conversion Service. Sie sollten die Methode Converter<Car, String> getCarConverter() in ApplicationConversionServiceFactoryBean implementieren.

Siehe Referenz für Details.

    
viator 20.02.2011, 19:22
quelle
11

:) Ich habe nur den ganzen Sonntag damit verbracht, das gleiche Problem zu lösen.    Fügen Sie einfach itemLabel="Ihren Feldnamen aus der Auto-Klasse" hinzu.

%Vor%     
Mailis Toompuu 28.11.2011 09:24
quelle
2

Für Spring roo 1.1.4 und höher:

  1. Lesen Sie ApplicationConversionServiceFactoryBean.java sorgfältig

  2. Lesen Sie ApplicationConversionServiceFactoryBean_Roo_ConversionService.aj sorgfältig durch Sie sollten hier einen statischen CarConverter finden. Es sollte sehr lange dauern Präfix. Sie sollten hier eine installLabelConverters-Methode mit einem langen Präfix finden.

  3. Kopieren Sie den Code CarConverter von 2 nach 1, entfernen Sie das lange Präfix. Ändern Sie den Code innerhalb der convert () -Methode, so wie Sie möchten.

  4. Kopieren Sie die zugehörigen Importanweisungen von 2 nach 1.

  5. Kopieren Sie den Code installLabelConverters Methode von 2 nach 1, entfernen Sie das lange Präfix.

  6. Speichern Sie nun die Datei 1.

  7. Starten Sie roo, lassen Sie die .aj-Datei aktualisieren.

  8. Verwenden Sie "mvn tomcat: run", um es zu kompilieren und erneut auszuführen.

Alex Wen 05.08.2011 13:01
quelle
0

Sie können versuchen, die Methode toString in der Entity Car hinzuzufügen, in der das Feld Car des Namens zurückgegeben wird. und verifiziere dieses Profil in path:/src/main/webapp/WEB-INF/tags/form/fields/select.tag x Aktualisiere alle Optionen:

%Vor%

zu:

%Vor%     
miracle 05.02.2011 15:53
quelle

Tags und Links