2017-03-05 2 views
0

I (einschließlich i18n) JSR303 aber ich bekomme immerJSR303 i18n nicht funktioniert in Primefaces basierten Seite

### Message 'msg.test.validation' not found ### 

ich ein ValidationMessages.properties mit Inhalt

msg.test.validation=This is a test 

die Datei erstellt haben anzupassen versuche Dateien (einschließlich ValidationMessages_de.properties, _de_DE.properties und _en.properties) werden in src/main/resources abgelegt. In der WAR-Datei werden die Dateien im WEB-INF/classes befindet (Standard Maven Verhalten)

in der Managed Bean Ich habe

@NotNull  
@Pattern (regexp="^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$", message = "{msg.test.validation}") 
private String test; 

Und die Primefaces 6.0 Auf der Grundlage Seite enthält

<h:form> 
    <p:inputText id="test" value="#{validationView.test}" label="Test" /> 
    <p:commandButton id="testbutton" action="#{validationView.showTest}" value="Test" validateClient="true" /> 
    <p:message for="test" /> 
</h:form> 

Ich finde die ValidationMessages nicht gefunden, aber warum? Wenn ich anstelle des Platzhalters 'msg.test.validation' eine Nachricht hinterlege, wird diese Nachricht angezeigt.

Irgendwelche Hinweise?

+0

den Grund gefunden, habe ich aktiviert 'primefaces.CLIENT_SIDE_VALIDATION'. Wenn diese Option deaktiviert ist, werden die Nachrichten gefunden. Aber ich habe immer noch keine Lösung gefunden, um die Eigenschaft zu aktivieren. – Joern

Antwort

0

Diese im Prime-Gesichter Komponente wie funktionieren sollte:

<p:inputText validatorMessage="#{message['msg.test.validation']}" /> 
+0

funktioniert, aber die Nachricht darf sich nicht auf ValidationMessage, sondern auf eine messages.properties im Paketordner beziehen. Nicht 100% was ich machen möchte. Z.B. Ich kann den Feldnamen nicht mit {0} einschließen, was ich in der ValidationMessages-Datei tun kann – Joern

+0

Ich hatte das gleiche Problem hier. Die Lösung ist, dass sie nicht in der Client-Validierung von primefaces funktioniert. Wenn p: comandButton clientValidation = true hat, enthält die Datei beanvalidation.js auch keine angepasste Nachricht. Wir haben diese Funktion deaktiviert und jetzt wird eine Anfrage zur Validierung der Eigenschaft ausgeführt. Datei ist ValidationMessages.properties im Stammverzeichnis des Ressourcenordners. Für mich war der einfachste Weg, der funktioniert. –

+0

Ja, Sie können die Ordinalzahl nicht wie {0} einschließen, aber Sie können auch {max}, {min} verwenden, bei denen es sich um Bean-Validierungsparameter handelt. –

Verwandte Themen