2010-11-29 6 views
0

Ich habe ein Integer-Feld in der Bean, die ich in meiner JSF-Anwendung verwende. Das Integer-Feld zeigt den Status des Prozesses an und kann 0, 1 oder 2 sein. Was ich tun möchte, ist, diesen Wert automatisch der entsprechenden String-Repräsentation zuzuordnen (0- noch nicht verarbeitet, 1- ist verarbeitete ... etc) oder tun dies in einer fest codierten Weise mit jsf. Ich bevorzuge es nicht anders zu handhaben, weil die Haupt-JSF-Bean, die ich verwende, mehrere Hibernate-Modelle enthält, und es wird kompliziert, wenn ich mich anders entscheide. Danke für die Hilfe!Suche nach einem bekannten Schlüssel-Wert-Paar in JSF

Antwort

0

Ich würde Sie für i18n.

Ihre Immobilie Datei aussehen sollte gehen vorschlagen.

message_en.properties

process_in_progress=Process is under prgress 
process_failed=Process failed to execute. 
+1

Es heißt "i18n", nicht "i18th". – BalusC

+0

@BalusC Danke, es war Typ, der Grund hinter i18n Phänomene, wie ich verstanden habe, gibt es 18 Zeichen zwischen Internationalisierung i und n –

0

Mehrere Möglichkeiten.

  1. Verwenden Sie rendered Attribut.

    <h:outputText value="Not processed" rendered="#{bean.status == 0}" /> 
    <h:outputText value="Being processed" rendered="#{bean.status == 1}" /> 
    <h:outputText value="Finished processing" rendered="#{bean.status == 2}" /> 
    
  2. Verwendung Konditionaloperator ?: in EL.

    <h:outputText value="#{bean.status == 0 ? 'Not Processed' : bean.status == 1 ? 'Being processed' : 'Finished processing'}" /> 
    
  3. Verwenden Sie einen anwendungsweiten Map<Integer, String> irgendwo.

    public class Bean { 
        private static Map<Integer, String> statuses = new HashMap<Integer, String>(); 
        static { 
         statuses.put(0, "Not processed"); 
         statuses.put(1, "Being processed"); 
         statuses.put(2, "Finished processing"); 
        } 
        // Add getter. 
    } 
    

    mit

    <h:outputText value="#{bean.statuses[bean.status]}" /> 
    

    die im Grunde bean.getStatuses().get(bean.getStatus()) tut.

Verwandte Themen