Frage

ich mit ein wenig Internationalisierung Problem bin zu kämpfen in einem meiner apps. Die Geschichte geht so:

Ich habe eine Datentabelle, die Datensätze anzeigt, und eine selectOneMenu um eine Spalte der Datatable auszuwählen gefiltert werden. Die selectOne ist fed mit SelectItems, die in der entsprechend der tatsächlichen locale gefüllt sind Sichern Bohne auf DataRefresh Zeit.

Wenn nun der Benutzer ändert das Gebietsschema, den Inhalt des selectOne Aufenthalt in der alte locale, bis die Seite erneut gerendert. Das ist ganz logisch und erwartet.

Natürlich möchte ich das ändern.

So habe ich versucht, eine eigene selectOne schreiben, die selectItems verwendet, die enthalten Verweise auf Sprachdatei-Einträge, um sie ändern zu können, ohne rerendering.

Hier ist, was ich versuchte,

<select id="j_id5:filterSelector" name="j_id5:filterSelector" size="1"> 
    <c:forEach var="item" items="#{gridBean.filterFields}">
        <option value="#{item.Value}">#{msg[item.Label]}</option>
    </c:forEach>
</select>

Leider JSF sagt mir das Element kein Label oder Value-Eigenschaft verfügt, die Ich glaube kaum. ;)

Hat jemand das habe eine Idee, wie thise Eigenschaften für den Zugriff auf diese Art und Weise?

War es hilfreich?

Lösung 2

Ich löste das Problem mit dem filterfields zweimal zu speichern. Einmal für jede Sprache - Laufzeit decission, die gerendert wird. Kein schönes, aber es funktioniert. Could'nt bekommen das Change gehen ...

Andere Tipps

Es scheint mir, sollten Sie schreiben:

#{item.value}

statt #{item.Value}, als Standard Java Beans Konvention ist getXyz() Getter für xyz Eigenschaft haben.

Auch, warum Sie keinen valueChangeListener an die UI-Komponente für locale Auswahl zur Verfügung stellen, und dann, im Innern, die wählen Sie den Punkt Etiketten für dieses Gebietsschema füllen. Auf diese Weise können Sie Standard-f:selectItems Tag verwenden.

Man könnte es auch so machen Sie Ihren Befehl Link, um die Seite neu zu machen, so dass es automatisch tut, was Sie brauchen, um es zu. Weiß nicht, ob diese Ihre Anforderungen oder nicht erfüllt. :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top